日期:2014-05-16  浏览次数:20633 次

15 Linux更改权限解决新建用户不能读写创建文件/文件夹的问题

在linux下新建一个用户之后可能会遇到不能读写、创建文件/文件夹的问题,这通常是由于用户权限不够导致的,此时通常有两种比较简单的解决办法

1、在所有的命令之前增加sudo获得root权限

2、调用ls -l命令查看工作目录的对应权限:

alloy@raspberrypi:~$ ls -l
total 8
drwxrwxrwx 2 root  root  4096 Mar 27 02:28 linuxcupdate
-rw-r--r-- 1 alloy alloy    3 Mar 27 02:29 test.c

以如上为例,当前工作目录下有一个linuxcupdate文件夹和一个test.c文件,前者对应的权限是drwxrwxrwx,后者对应的权限是-rw-r--r--

文件和文件夹对应的权限可以划分为4段:d|rwx|rwx|rwx 和 -|rw-|r--|r--|

第一段用于说明是文件类型,前者为“-”说明是普通文件,后者为d说明是文件夹,此外还有链接文件等。
第二段用于说明文件所有者的属性,r = 读,w = 写,x = 执行,该位对应的数值为1的时候有效,为0的时候无效,例如rwx = 111,--- = 000。
第三段和第四段分别用于说明和文件所有者同组的用户和以及其他用户的权限。

在实际使用中第二、三、四段会映射为一个十进制编码,例如rwx = 111 = 7,--- = 000 = 0。

此时可以使用chmod命令来对文件/文件夹权限进行修改,最简单的就是设置为-rwxrwxrwx,即对应十进制编码777。

alloy@raspberrypi:~$ chmod 777 test.c
alloy@raspberrypi:~$ ls -l
total 8
drwxrwxrwx 2 root  root  4096 Mar 27 02:28 linuxcupdate
-rwxrwxrwx 1 alloy alloy    3 Mar 27 02:29 test.c

注意:方法1和方法2所创建的文件夹所属用户是不同的

alloy@raspberrypi:~/linuxcupdate$ sudo mkdir chapter1
alloy@raspberrypi:~/linuxcupdate$ mkdir chapter2
alloy@raspberrypi:~/linuxcupdate$ ls -l
total 8
drwxr-xr-x 2 root  root  4096 Mar 27 02:41 chapter1
drwxr-xr-x 2 alloy alloy 4096 Mar 27 02:41 chapter2

chapter1文件夹是使用sudo命令创建的,该文件夹属于root用户,而chapter2是直接创建的,属于当前用户alloy。