Linux的权限访问控制ACL管理

访问控制列表((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

翻译来源:https://websistent.com/linux-...

相关推荐