com*_*ose 8 linux permissions user-permissions setfacl
我想递归地向目录上的特定用户授予写入权限,而不丢失该用户可能拥有的任何现有权限。我相信我可以使用类似的方法向用户授予写权限:
setfacl -R -m u:user:w dir/*
Run Code Online (Sandbox Code Playgroud)
但这样做的问题是它会剥夺用户可能已经拥有的任何现有权限。例如,如果用户在执行setfacl命令之前具有执行权限,它将用写权限替换执行权限。
如何在保留现有权限的同时向用户授予写权限?
您想要的称为“相对权限”,这是某些 setfacl 实现提供的功能,基本上使用经典的“+/-”语法chmod
然而,至少在 RHEL7 和 Ubuntu 16.04 LTS 上,setfacl不提供这样的功能。例如,setfacl -m user:root:+r /root/返回一个错误说明setfacl: Option -m: Invalid argument near character 11
如果您的setfacl实现缺少此功能,您有两种可能性:
getfaclACL输出到文件,编辑该文件以匹配您所需的访问权限,然后用于加载/应用新权限;setfacl --restore