我有一台带有外置 USB 硬盘的 MacBook Pro。我编写的一个程序无法读取文件,Backups.backupdb
因此我查看了权限:
> pwd
/Volumes/G-DRIVE
> ls -led Backups.backupdb
drwxr-xr-x+ 7 rob staff 238 Feb 10 2012 Backups.backupdb
0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
这是一个较旧的驱动器。我不再使用它进行 Time Machine 备份,因此我不在乎是否清除用于保护此文件夹的权限
但我无法清除它们:
> sudo chmod -N Backups.backupdb
> chmod: Failed to clear ACL on file Backups.backupdb: Operation not permitted
尝试查找可能阻止 chmod 的一些隐藏属性:
> ls -ldO Backups.backupdb
> drwxr-xr-x+ 7 rob staff - 238 Feb 10 2012 Backups.backupdb
> xattr Backups.backupdb
[nothing]
为什么操作不被允许?
我刚刚使用磁盘实用程序查看了驱动器。没有发现任何问题。
答案1
我找到了我自己的问题的答案。
我不知道这是否是 macOS 11 Big Sur 的新功能。我必须转到“系统偏好设置”→“安全和隐私”→“隐私”选项卡。然后在左侧列表中选择“完全磁盘访问”,并启用终端的复选框。它重新启动了终端,然后我就可以运行常用命令chmod
,以及查看目录内容。
答案2
无法执行操作通常sudo
是由系统完整性保护引起的。这个答案描述了类似的问题,并描述了如何禁用 SIP(并在完成后重新启用它)。