Liunx下文件权限详解
刚接触Linux时对Linux下的文件权限的概念一直很模糊,观念还一直停留在windows下,所以有很多操作一直提示权限不够。为了弄懂文件权限问题我查找了很多资料整理如下,我把这些学习笔记贴出来和大家一起分享,如有错误望指正。
对于Linux系统中的文件来说,有三种身份和四种权限:
三种身份是:
(1) u:文件的拥有者
(2) g:文件所属的群组
(3) o:其他用户
对于每个身份,又有四种权限,分别为:
(1) r:读取文件的权限(read)
(2) w:写入文件的权限(write)
(3) x:执行的权限(execute)
(4) s:特殊权限
在Linux系统中,文件的属性由10个字符来表示,第一个字符表示文件的类型,其余9个字符分为三组,分别表示文件的拥有者、群组以及其他人对该文件的访问权限,每组依次表示读取、写入、和执行的权限,如果没有该权限,则以-(一个减号)显示。
1. 文件类型 文件拥有者的权限 群组的权限 其他人的权限
2. - rw- rw- r--
Linux下,查看某路径下用(ls -l)查看所有文件的详细属性列表时,会看到文件的操作权限,类似“drwxr-xr-x”的字符串。
这串字符可以分成4段理解,结构为“d + 文件所有者操作权限 + 文件所有者所在组操作权限 + 其余人的操作权限”:
1,第一段:例子中字母“d”,表示文件文件类型
2,第二段:例子中字符串“rwx”,表示文件所有者对此文件的操作权限
3,第三段,例子中字符串“r-x”,表示文件所有者所在组对些文件的操作权限
4,第四段,例子中字符串“r-x”,表示除2、3两种外的任何人对此文件的操作权限
通常用三个数字来表示文件的读取、写入、执行权限:
执行:1
写入:2
读取:4
随便写个数字:755,这个3位数分别对应前面所说的分段:7对应第二段,5对应第三段,5对应第四段。
含义:
7:表示文件所有者的权限,4+2+1=7,即文件所有者对该文件有生杀大权,读、写、执行随便。
5:表示文件所有者所在组的权限:4+1=5,即文件所有者所在组对文件有读、执行权限,没有写权限。
5:同上,其余人对该文件只有读、执行权限,没有写权限。
具体使用——例 :chmod 755 文件名。
数字形式表示的权限
除了以上的表示文件权限的方式外,我们经常会看到文件的权限为777、666等,这些又是怎么回事呢?这其实也是Linux系统下一种表示文件权限的方式。
在Linux系统中,对于文件的权限有读取、写入、执行三种,分别用rwx表示,另一种表示权限的方式就是使用数字,读取、写入和执行权限分别由数字4、2和1表示。
1. 读取权限:r 或者4
2. 写入权限:w或者2
3. 执行权限:x或者1
4. 示例
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
-rw------- (600) -- 只有属主有读写权限。
-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) -- 只有属主有读、写、执行权限。
-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
如果一个文件拥有777的权限,则说明该文件的拥有者、群组、以及其他人都可以对该文件进行读取、写入和执行的操作,也就是说谁都可以来操作这个文件了。
参考资料:
http://os.51cto.com/art/201003/187970.htm
http://www.letuknowit.com/topics/20120315/file-permission-detail-explanation.html