Answers:
如果文件或目录具有扩展属性,您将在“权限”字段中看到一个@。有关扩展的安全信息(ACL),您将看到一个+号。
从man ls
OS X上:
-@ Display extended attribute keys and sizes in long (-l) output.
该xattr
程序可用于显示和操作扩展属性。不过,在决定删除这些属性之前,请先查看其中的内容。绝对也可以快速浏览xattr的手册页。
我保留一些示例性的PHP折衷代码的快速示例作为参考:
$ ls -@l php-compromise.php
-rw-r--r--@ 1 user group 502620 Jul 5 2011 php-compromise.php
com.apple.FinderInfo 32
com.apple.TextEncoding 15
感谢@Jeff的更正。我很想念。
@
显示与扩展属性被设置+
显示为ACL。@
。运行命令ls -le filename
以查看是否设置了任何ACL。
由于您的问题似乎与访问文件有关,因此我敢打赌,除了扩展属性外,您还设置了ACL。
要摆脱ACL,请运行echo | sudo chmod -E filename
文件或echo | sudo chmod -R -E directory name
目录。
请参见chmod手册页。
@
扩展属性和+
acl设置,则ls似乎会显示一个@
。由于他在访问文件时遇到问题,在我看来,该问题更有可能是他的ACL有问题。
该@
代表扩展属性,除了标准的UNIX文件权限。
检查扩展属性:
ls -l@
重置单个文件的所有扩展属性:
sudo xattr -c <filepath>
递归重置所有扩展属性:
sudo xattr -rc <directory>
sudo chmod -R -N <directory>
在macOS High Sierra(10.13)和macOS Mojave(10.14.6)上进行了检查。