天天看点

Linux下文件及目录权限一、普通权限

在Linux系统下执行 $ ls -l 会得到类似下面的结果:

total 0

-rw-rw-r--  1 bjxh bjxh 0 Aug 18 14:21 fileA

红色部分表示的就是文件fileA的权限,

文件或目录的权限部分共有十位组成:

第一位表示的是文件的类型:

第一位是 - 表示该文件是普通文件;是d表示文件是目录。

剩下的九位分成三组,每组三位,

其中第一个三位组表示的是该文件的属主权限(就是这个文件的拥有者对该文件有什么权限)用字母 u 表示;

第二个三位组表示的是该文件的属组权限用字母 g 表示;

第三个三位组表示的是即不是文件的属主也不是文件的属组成员也就是其它用户对该文件的有什么样的权限,用字母 0 表示。

每个三位组有rwx组成,

r表示该文件或目录可以被读取;

w表示文件或目录可以被写;

x表示可执行文件或目录可以被执行。

例如:-rw-rw-r--  1 bjxh bjxh 0 Aug 18 14:21 fileA

第一位是 - 表明这是一个普通文件;

第一个三位组是 rw-表示该文件的属主即bjxh对该文件有读和写的权限;

第二个三位组是 rw-表示该文件的属组即bjxh组成员对该文件也有读和写的权限;

第三个三位组是 r--表示其它用户对该文件只有读的权限。

除了可以用 rwx这样的字母形式来表示文件或目录权限,还可以用数字表示。

r 表示读权限用 4 表示(2的2次方)

w表示写权限用 2表示 (2的1次方)

x表示执行权限用 1 表示(2的0次方)

例如:

该文件的权限用数字表示就是:

属主权限:r+w=4+2=6

属组权限:r+w=4+2=6

其它用户权限:r=4

连起来说该文件的权限就是664,这也是系统普通用户创建文件时的默认权限,普通用户创建目录的默认权限是775;而root用户创建的文件默认权限是644,目录是755。

如果想改变文件或目录的权限可以使用下面两种方式:

执行:$ chmod g-w fileA 后 文件的权限变成下面这样

-rw-r--r--  1 bjxh bjxh 0 Aug 18 14:21 fileA 属组的写权限被减去了,如果再加回来只要执行$ chmod g+w fileA。属主和其它组的权限操作方法相同。 

也可以使用数字方式改变文件或目录的权限:

例如:-rw-r--r--  1 bjxh bjxh 0 Aug 18 14:21 fileA

执行:$ chmod 666 fileA 后会得到下面结果:

-rw-rw-rw-  1 bjxh bjxh 0 Aug 18 14:21 fileA 所有的用户都可以完全控制fileA文件。

执行:$ chmod 600 fileA 就会得到下面的结果:

-rw-------  1 bjxh bjxh 0 Aug 18 14:21 fileA 只有文件的属主对该文件有读和写的权限,而属组和其它用户对该文件没有任何权限。

本文转自Y.weisheng 51CTO博客,原文链接:http://blog.51cto.com/yuan2/93318,如需转载请自行联系原作者

继续阅读