Shuimitaojun 2019-06-29
访问控制列表((ACL)是一种在Linux中分配微调权限的方法,除了使用chmod命令。当使用chmod命令时,只能为一个所有者和一个组分配文件或目录的权限。如果多个用户需要访问我们需要将它们放在一个组中的资源,然后为该组提供必要的权限。但是在Linux中使用文件ACL,我们可以为文件上的每个用户和组分配细粒度的权限,甚至拒绝访问特定用户如果文件具有世界权限。本文关于Linux文件ACL的教程将解释命令getfacl和setfacl的用法。
首先让我们了解文件和目录的每个权限的目的
文件 -
r(读取) - 可以查看文件的内容
w(写入) - 可以编辑文件并插入新内容
x(执行) - 可以执行文件。此权限分配给shell脚本和CGI脚本。
目录 -
r(读取) - 可以使用“ls”命令查看目录的内容
w(写入) - 可以在目录中创建新文件,可以删除现有文件
x(执行) - 具有此权限的用户可以更改目录(cd)进入这个目录
如果getfacl和setfacl 找不到命令错误,则表示未安装acl软件包,因此请根据您的操作系统使用yum或apt-get来安装软件包
# ‘#’表示root权限下,如果不是root权限 下面命令前请加上 sudo # yum install acl # apt-get install acl
要查看文件/目录的访问控制列表,请使用getfacl命令
getfacl /home/file1 # file: home/file1 # owner: root # group: root user::rw- user:root:rw- group::r-- mask::rw- other::r--
在使用setfacl命令之前,必须在文件系统上启用acl,否则您将收到以下错误。
setfacl: /path/to/file: Operation not supported
因此必须编辑/etc/fstab文件,并且必须在单词“defaults”附近添加单词acl,示例fstab条目如下所示
/dev/sda3 / ext3 defaults,acl 0 0
要设置文件/目录的ACL,请使用setfacl命令
setfacl -m u:username:rw /etc/fstab
在此命令中,“u”表示用户,后跟用户名和“rw”表示读写权限。为了给予所有权限,使用“rwx” 拒绝所有权限使用减号( - )。例如,即使文件具有777权限,也要拒绝对/ path / to / file上的user1的所有权限
setfacl -m:user1:- /path/to/file
要授予所有权限的组
setfacl -m g:groupname:rwx /path/to/filename
要以递归方式将ACL设置为目录中的所有文件,请使用-R选项
setfacl -R -m u:username:rwx /path/to/directory
要删除条目从访问列表
setfacl -x u:username /path/to/file