一月 30, 2011

【原】Linux下文件操作权限详解

Written by

=================================================
本文为HeYuanHui原作

转载必须确保本文完整并完整保留原作者信息及本文原始链接!

NN:      khler
E-mail: khler@163.com
QQ:     23381103
MSN:   pragmac@hotmail.com
=================================================

 

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

hyh@hyhUbuntu:~$ ls l
总计 
96804
rwrr  1 hyh hyh        0 20110130 13:46 aaa.fd
rwxrwrw  1 hyh hyh  7385035 20100415 22:13 CHNTEL_Linux_UI.tar.gz
rwxrwrw  1 hyh hyh     1373 20100807 20:24 client.c
rwrr  1 hyh hyh        0 20110130 13:46 create
drwxr
xrx  2 hyh hyh     4096 20101221 10:02 cutecom
drwxrwxrwx  
2 hyh hyh     4096 20101220 15:17 cutecom0.22.0

 

 

前面诸如”rwrr“的标记即为相应文件的操作权限。

刚开始接触总看不明白这些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文件修改权限前:

hyh@hyhUbuntu:~$ ls l
总计 
96804
rwrr  1 hyh hyh        0 20110130 13:46 aaa.fd

 

 

用755权限修改后:


hyh@hyh
Ubuntu:~$ chmod 755 aaa.fd
hyh@hyh
Ubuntu:~$ ls l
总计 
96804
rwxrxrx  1 hyh hyh        0 20110130 13:46 aaa.fd

 

 

 

发表评论

电子邮件地址不会被公开。

Proudly powered by WordPress and Sweet Tech Theme