OSX:如何在文件夹上设置ACL

时间:2015-10-13 23:29:48

标签: macos acl xattr

如何将ACL设置为类似于Safari.app的文件夹?

ls -lde /Applications/Safari.app/
drwxr-xr-x@ 3 root  wheel  102 Jun 22 13:25 /Applications/Safari.app/
0: group:everyone deny delete

我尝试过使用:

sudo chmod -R +a "group:everyone deny delete" /Applications/xyz
ls -lde xyz
drwxr-xr-x+ 2 root  admin  68 Oct 13 16:26 xyz
0: group:everyone deny delete

但我仍然可以删除文件夹xyz。

任何帮助都会很明显。

1 个答案:

答案 0 :(得分:1)

通常,人们无法拒绝sudo rmdir /Applications/xyz,也不能拒绝sudo mv /Applications/Safari.app /Applications/Safari.app.bak. 在正常情况下,root可以执行任何所需的操作。

但是“系统完整性保护” 安全层在启用后会保护Apple的应用程序(默认情况下:请与csrutil status一起使用。出于开发原因,我使用了csrutil enable -without fs )。有关此SIP的说明,请参见this answer

无根功能如下所示:

$ ls -le@d /Applications/Siri.app
drwxr-xr-x@ 3 root  wheel  96 Oct 19  2017 /Applications/Siri.app
    com.apple.rootless   0 
 0: group:everyone deny delete

因此,即使根用户也无法在SIP下将其删除。
OTOH,这在SIP下不起作用:

$ sudo xattr -w com.apple.rootless "" /Applications/xyz
xattr: [Errno 1] Operation not permitted: '/Applications/xyz'