Linux下文件操作权限详解

Linux操作系统下,ls命令用来列出指定目录下的所有文件,如果加入参数'-l',则同时列出所有文件/文件夹的操作权限,如下所示:

Linuxidc@:~$ ls -l
总计 96804
-rw-r--r--  1 hyh hyh        0 2011-01-30 13:46 aaa.fd
-rwxrw-rw-  1 hyh hyh  7385035 2010-04-15 22:13 CHNTEL_Linux_UI.tar.gz
-rwxrw-rw-  1 hyh hyh     1373 2010-08-07 20:24 client.c
-rw-r--r--  1 hyh hyh        0 2011-01-30 13:46 create
drwxr-xr-x  2 hyh hyh     4096 2010-12-21 10:02 cutecom
drwxrwxrwx  2 hyh hyh     4096 2010-12-20 15:17 cutecom-0.22.0
...


前面诸如"-rw-r--r--"的标记即为相应文件的操作权限。

刚开始接触总看不明白这些rwx到底是什么意思,其实分解一下就相当简单了。

简单说就是四个部分:目录标记、当前用户权限、组用户权限、除上述用户以外的用户权限,Linux用'd'、'r'、'w'、'x'分别表示读'目录'、'可权限'、'可写权限'、'可执行权限'。

1、第一个字符

第一个字符表示是否是文件夹,如果是,则为'd',否则为'-',这个很好理解,d就是directory,如果是文件夹,就用'd'表示,如果是文件,当然就是'-'了,所以你经常会在 ls -l 时看到文件前的第一个字符都是 '-';

2、当前用户权限

接下来的三位表示当前用户的操作权限,分别是rwx,其中第一位标示是否有读权限,如果有,则为'r',否则为'-';同理,第二位标示是否有写权限,如果有,则为'w',否则为'-';第三位标示是否有执行权限,如果有,则为'x',即'executable'的'x',否则为'-';

3、组权限和其他用户权限

后面的三位表示所属组的权限,用来控制本组内的用户所有用的权限;最后三位就是除上述用户以外的用户权限。同样以rwx表示

4、为什么还有数字76543210?

由于Linux的所有文件的权限都是用数字掩码来标记的,所你可以用chmod带-r、-w、-x来增减权限,也可以用数字来控制权限:

0 - 无权限

1 - 有可执行权限

2 - 有可写入权限

4 - 有可读取权限

在bit中即为:

bit: 1 1 1

字符:r w x

数字:4 2 1

那么,当你有可读写及执行权限后,此文件的权限就是7 = 4+2+1

举例:

对aaa.fd文件修改权限前:

Linuxidc@:~$ ls -l
总计 96804
-rw-r--r--  1 hyh hyh        0 2011-01-30 13:46 aaa.fd

用755权限修改后:

Linuxidc@:~$ chmod 755 aaa.fd
Linuxidc@:~$ ls -l
总计 96804
-rwxr-xr-x  1 hyh hyh        0 2011-01-30 13:46 aaa.fd

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/25183.html