在Linux操作系统下,ls命令用来列出指定目录下的所有文件,如果加入参数’-l’,则同时列出所有文件/文件夹的操作权限,如下所示:
Linuxidc@www.linuxidc.com:~$ 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@www.linuxidc.com:~$ ls -l
总计 96804
-rw-r–r– 1 hyh hyh 0 2011-01-30 13:46 aaa.fd
用755权限修改后:
Linuxidc@www.linuxidc.com:~$ chmod 755 aaa.fd
Linuxidc@www.linuxidc.com:~$ ls -l
总计 96804
-rwxr-xr-x 1 hyh hyh 0 2011-01-30 13:46 aaa.fd