CentOS 配置 ACL(访问控制列表)
什么是 ACL?

ACL(Access Control List,访问控制列表)是一种用于控制用户或组对文件和目录访问权限的机制,与传统的 UNIX 文件权限相比,ACL 提供了更细粒度的权限控制,允许用户或组对特定的文件或目录设置多种权限。
为什么需要配置 ACL?
在多人共享文件系统或需要精细权限控制的环境中,ACL 可以提供以下优势:
- 灵活的权限管理:ACL 允许为单个用户或组设置特定的权限,而不仅仅是整个文件系统。
- 继承权限:ACL 可以被继承,使得子目录继承父目录的权限设置。
- 简化权限管理:通过 ACL,可以集中管理多个用户或组的权限,简化了权限管理过程。
CentOS 配置 ACL 的步骤
安装 acl 包
在 CentOS 系统上,首先需要安装 acl 包,可以通过以下命令进行安装:
sudo yum install acl
设置文件权限
安装完成后,可以使用 setfacl 命令来设置文件或目录的 ACL。
为 /home/user1 目录设置 ACL,允许用户 user2 读取和写入:

setfacl -m u:user2:rwx /home/user1
修改现有文件权限
如果需要修改现有文件的权限,可以使用以下命令:
setfacl -m u:user2:rwx /path/to/file
删除 ACL
如果需要删除某个文件或目录的 ACL,可以使用以下命令:
setfacl -b /path/to/file
查看 ACL
要查看文件或目录的 ACL 设置,可以使用以下命令:
getfacl /path/to/file
示例
以下是一个示例,展示了如何为一个目录设置 ACL:
[root@server ~]# getfacl /home/user1
getfacl: Removing leading '/' from absolute path names
# file: /home/user1
# owner: root
# group: root
user::rwx
group::r-x
other::r-x 为用户 user2 设置读取和写入权限:

[root@server ~]# setfacl -m u:user2:rwx /home/user1 再次查看 ACL:
[root@server ~]# getfacl /home/user1
getfacl: Removing leading '/' from absolute path names
# file: /home/user1
# owner: root
# group: root
user::rwx
user:user2:rwx
group::r-x
other::r-x FAQs
Q1:如何为组设置 ACL?
A1: 为组设置 ACL 与为用户设置类似,只需将用户名替换为组名,为组 group1 设置读取权限:
setfacl -m g:group1:r /path/to/file
Q2:ACL 在重启后是否依然有效?
A2: 是的,ACL 在重启后依然有效,如果需要确保 ACL 在系统启动时自动应用,可以将 setfacl 命令添加到启动脚本中。

