刚接触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的权限,则说明该文件的拥有者、群组、以及其他人都可以对该文件进行读取、写入和执行的操作,也就是说谁都可以来操作这个文件了。
参考资料: