我想要赋予权限的目录: /home/projects
1. 安装 acl
工具
sudo apt-get update
sudo apt-get install acl
2. 设置现有目录及其所有子目录和文件的权限
使用 setfacl
命令为指定目录及其所有子目录和文件设置权限:
sudo setfacl -R -m u::rwx /home/projects # 为所有者设置权限
sudo setfacl -R -m g::rwx /home/projects # 为组设置权限
sudo setfacl -R -m o::rwx /home/projects # 为其他用户设置权限
3. 设置默认 ACL 确保新建文件和目录继承权限
使用 setfacl
命令为指定目录设置默认的 ACL,以便新建的文件和目录也具有读、写、执行权限:
sudo setfacl -d -m u::rwx /home/projects # 为所有者设置默认权限
sudo setfacl -d -m g::rwx /home/projects # 为组设置默认权限
sudo setfacl -d -m o::rwx /home/projects # 为其他用户设置默认权限
4. 确保 SGID 位设置
为了确保新建文件和目录继承父目录的组,还可以设置 SGID 位:
sudo chmod g+s /home/projects
5. 验证设置
使用以下命令查看目录的 ACL 设置:
getfacl /home/projects
输出以下结果,表示权限赋予正确:
getfacl: 从绝对路径名尾部去除" / "字符。
# file: home/projects
# owner: root
# group: root
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx