Linux 文件权限管理 gaunthan Posted on May 14 2016 ? Linux Basics ? ## 文件属性 使用`touch`命令新建一个文件,然后使用`ls -l`查看该文件,如下图: -rw-rw-r--. 1 han han 0 Mar 4 09:19 test 各个字段的解释如下: - `-rw-rw-r--.` * 这里总共有11个字符,标出文件的格式与权限控制。 * 第一个字符`-`表示这是一个普通文件,类似的还有`d`表示目录文件,`l`表示链接文件,`c`表示字符设备,`b`表示块设备等等。 * 第二个字符之后的9个字符`rw-rw-r--`,以3个字符为一组,分别是`rw-`和`rw-`以及`r--`,代表三种人群对该文件具有的权限。三种人群分别是**所有者**(user)、**所属组**(group)以及**其他人**(other)。其中,`r`代表可读(**r**ead),`w`代表可写(**w**rite),`x`代表可执行(execute),`-`代表没有该权限)。 * 最后的一个位置用来表示是否有一个可替换的**访问控制列表**(ACL,Access Control List)应用在这个文件上。当这个位置是一个可打印字符时,表示系统存在这样一个访问控制措施。GNU的`ls`命令使用`.`字符表示文件使用了SElinux安全上下文,但是没有使用其他的访问控制措施。在使用SElinux安全上下文的同时,混用其他访问控制措施的文件用`+`字符标记。 - `1` 这个数值代表**文件计数**,对该文件创建一个硬链接将使该计数加一,创建一个软链接不改变该值,如: - 第一个`han` 表示文件的**所有者**。 - 第二个`han` 表示文件的**所属组**。 - `0` 表示文件的**大小**。默认单位为byte`。 - `Mar 4 09:10` 表示文件的**创建日期**或**修改日期**。 - `test` 表示文件的**名称**。当文件为软链接时,会同时显示出实际的链接文件。 ## 管理文件权限 给命令加上选项`-R`可以递归设置。 ### 默认管理:使用`chmod` `chmod`能够管理某个文件的**所有者**、**所属组**以及**其他人**对该文件的权限,管理方式有两种。 #### 数字修改方式 这种方式中,`r`代表数字`4`,`w`代表数组2,`x`代表数组1。 假设某个文件的权限为`rwxrw-r-`,则对应的数字为`764`(7代表所有者具有`rwx`权限,`6`代表所属组具有`rw`权限,`4`代表其他人具有`r`权限)。因此,若要将某个文件`test`的权限修改为所有人只有读权限可以输入该命令`chmod 444 test`。 #### 符号修改方式 这种方式中,修改格式类似为`u+r`: * 第一个字符代表人群,可选的值有`u`(所有者)、`g`(所属组)、`o`(其他人)以及`a`(全部)。 * 第二个字符代表操作,可选的值有`+`(增加权限)、`-`(取消权限)以及`=`设定权限。 * 第三个字符代表权限,可选的值有`r`(读)、`w`(写)以及`x`(执行)。 例如,执行命令`chmod u=rwx,g-x,o-wx test`将`test`文件的权限设置为:所有者可读可写可执行、所属组不可执行、其他人不可写和不可执行。 ### 细化管理:使用访问控制列表 当想为多个用户配置不同的访问权限时,`chmod`就显得无力了,因为它只能管理三种人群的权限。这时候,可以使用访问控制列表来为每一个用户定制权限。 可以使用的命令有: |功能|命令|详细描述| |--|--|--| |查看权限|getfacl file|获得file的所有权限设置信息| |设置权限|setfacl -m u:user1:rwx file|将user1对该文件的权限设置为rwx| ||setfacl -m d:u:user1:rwx file|设置acl的默认权限| |删除权限|setfacl -x u:user1 file|删除user1对file设置的权限| ||setfacl -b file|删除file上的所有acl权限| 赏 Wechat Pay Alipay Linux 系统工具使用 Linux 用户管理