Linux文件权限管理

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。Linux系统对不同的用户访问同一文件或目录的权限做了不同的规定,目的是保护系统的安全性。在服务器上,往往运行的数据越重要,价值越高,则服务器中对权限的设定就要越详细,用户的分级也要越明确。要根据不同的工作需要和职位需要,合理分配用户等级和权限等级。

文件权限表示法

查看文件权限命令:ls -alh / #列出根目录的所有目录和文件详细信息,含隐藏文件。
选项:
-a 显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起列出
-l 使用长格式列出文件和目录信息
-h 以人们易读的如KB、MB、GB显示文件或目录大小

ls 命令的-l 选项,显示出了文件(或目录文件)的7列详细信息,各列的含义是:

(1)权限信息。后续详述。 
(2)引用计数。文件的引用计数代表该文件的硬链接个数,目录的引用计数代表该目录有多少个一级子目录。 
(3)所有者。默认所有者是文件或目录的建立用户。 
(4)所属用户组。默认所属组是文件或目录建立用户所在组。 
(5)大小。默认单位是字节,ls的-h选项调整了容量显示方式。 
(6)修改时间。状态修改或数据修改都会更改这个时间。 
(7)文件名或目录名。![](https://qw.yswg360.com/M00/C5/64/rBC0Z2bkJSSABQFSAABUOvkR440695.png)

权限信息(共有11位)

(1)第1位表示文件或目录的具体类型。d表示目录,- 表示文件,l 表示链接文件。
(2)最后一位不关注。
(3)中间9位表示对文件或目录设定不同用户的读、写和执行权限。
访问权限类型
用户对文件或目录的访问权限用rwx的有序组合表示,依次是可读、可写、可执行,若哪项权限不存在,对应位置以 - 号替代。

三种权限的含义为:

可读(r):可浏览文件内容,可复制文件;可浏览目录的内容,即可用ls列出目录内的子目录和子文件,但不代表可以浏览子目录或子文件的内容。
可写(w):可编辑文件内容;可在目录内(进入目录)新建、删除、重命名、移动子目录或者子文件(需要x权限配合)。
可执行(x):执行脚本文件(非普通文件);可进入目录,即用cd切换进入

用户分类

访问文件或目录的用户分为3类,依次是文件所有者、文件所属组用户、其它用户,分别设置对文件或目录的不同的rwx组合的访问权限。所以访问权限的表示是由3组rwx组合的组成,共占9位的字符法表示。
文件所有者(user):一般是文件或目录的创建用户,也可修改。
文件所属组(group):一般是文件或目录的创建用户所在用户组,也可修改。
其它用户(other):非文件拥有者、非文件拥有者所在用户组的其它用户。


比如:-rw-r–r–.
第1标识位为“-”,代表一个文件。
第2至4标识位为“rw-”:说明该文件的拥有者zjiet对该文件具有可读和可写权限。
第5至7标识位为“r–”:说明与文件拥有者所属的zjiet用户组的同组用户对该文件具有可读权限,但不能对该文件进行可写、可执行操作。
第8至10标识位为“r–”:说明其他用户对文件具有可读权限,也无可写、可执行权限。
访问权限的数字法表示
(1)可读、可写,可执行分别用数字4,2,1表示。
(2)一个rwx组合,有几个权限存在,就将这些权限的数字加起来的值表示该组合。不同组合的值分别为:—(0)(000)、–x(1)(001)、-w-(2)(010)、-wx(3)(011)、r–(4)(100)、r-x(5)(101)、rw-(6)(110))、rwx(7)(111)。(用二进制理解)
(3)一个文件的访问权限由3个rwx组合构成,将每个组合对应的值拼成3位数(8进制),如:777(rwxrwxrwx),666(rw-rw-rw-)等。

权限管理命令

chmod命令

重新设置文件或目录的权限,设置方式可用字符法或数字法。
格式:chmod [选项][参数]
选项:-R 递归处理,将指令目录下的所有文件及子目录一并处理
参数:<新的文件权限><文件或目录>
比如:若要设置当前工作目录下的文件file的权限为644(rw-r—r–)
chmod 644 file
chmod u=rw,g=r,o=r file
chmod a=r file #注:444(r–r–r–)

chgrp命令

用于修改文件或目录的所属用户组。 命令理解为 “change group” 的缩写。
格式:chgrp[选项][参数]
选项:-R 递归处理,将目录下的所有子文件、子目录一并处理。
参数:<新的所属用户组><目录或文件>
比如:chgrp newgroup file
chgrp -R newgroup dir

chown命令

主要用于修改文件或目录的所有者,也可以修改所属用户组。命令理解为 “change owner” 的缩写。
格式:chown[选项][参数]
选项:-R 递归处理,将目录下的所有子文件、子目录一并处理。
参数:<新的所有者,或 新的所有者:新的所属用户组><目录或文件>
比如:chown newuser file
chown -R newuser:newgroup dir