是的,Mac在文件方面对Unix进行了许多增强。忽略不再使用的整个资源派生事物,有:
- 该标准的Unix权限
ugo
rwx
等。普通的Unix工具适用。
- ACL,可通过查看
ls -le
和更改chmod [ -a | +a | =a ]
。
- 文件标记可通过
ls -lO
(大写字母OH,不为零)查看,并且可通过更改chflags
。
- 扩展属性,可通过
ls -l@
(仅属性键)查看,并通过可查看和更改xattr
。(xattr -h
如果man xattr
没有帮助您,请寻求帮助。)
- 从OS X 10.11“ El Capitan”开始,系统完整性保护(SIP)进一步保护了某些文件,
sudo
使其免受普通进程的更改,即使使用时也是如此root
。受SIP保护的文件将被标记ls -lO
为具有restricted
标志和/或被标记ls -l@
为具有com.apple.rootless
属性。
由于Unix权限,ACL,文件标志或SIP,可以拒绝对文件进行操作。要完全解锁文件:
sudo chmod -N file # Remove ACLs from file
sudo chmod ugo+rw file # Give everyone read-write permission to file
sudo chflags nouchg file # Clear the user immutable flag from file
sudo chflags norestricted file # Remove the SIP protection from file
sudo xattr -d com.apple.rootless file # Remove SIP protection from file
如果启用了系统完整性保护(SIP),sudo chflags norestricted
并且sudo xattr -d com.apple.rootless
还将返回“不允许操作”错误。要清除标志和/或属性,您需要启动到macOS Recovery并从Terminal运行命令(您可能必须先使用Disk Utility来解锁并安装启动驱动器,然后记住文件将在/Volumes/Macintosh HD
启动状态下或以任何方式启动命名驱动器)或完全禁用SIP,然后重新启动,然后命令应该起作用。但是请注意,将来的操作系统更新可能会将restricted
标志和com.apple.rootless
属性还原到您从中删除的所有文件。
不建议禁用SIP,因为它会删除很多针对恶意软件和意外损坏的保护,此外,当您只需按文件删除保护时就没有必要了。如果确实禁用了SIP,请在完成更改后重新启用它。
请注意,如果ls -lO
显示该schg
标志已设置,则必须进入单用户模式才能取消设置它。我不打算在这里讨论这个问题,因为关于文件为何设置了该标志以及为什么要尝试弄乱该标志以及后果将是一个更大的问题。
sudo chgrp wheel ./entries
吗?