回答:
ファイルまたはディレクトリに拡張属性がある場合、アクセス許可フィールドに@が表示されます。拡張セキュリティ情報(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)で確認しました。