UNIXファイルのアクセス許可で「@」は何を意味しますか?


49

MacBook Proに次のアクセス許可を持つファイルがあります。

-rwxr-xr-x@ 1 root wheel 101K Feb 29 17:09 apachectl

何の@略ですか?私はファイルを実行できません。これが私にとって際立っている唯一のものです。どうすればそれを取り除くことができますか?

ちょっとした背景として、これをTime Machineバックアップからコピーしました。

回答:


35

ファイルまたはディレクトリに拡張属性がある場合、アクセス許可フィールドに@が表示されます。拡張セキュリティ情報(ACL)の場合は、+が表示されます。

man lsOS 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 

22

訂正してくれた@Jeffに感謝します。私は記憶を忘れていました。

  • @拡張属性が設定されていると表示されます
  • +ACLのために表示されています。
  • 属性とACLの両方がある場合は、が表示され@ます。

コマンドls -le filenameを実行して、ACLが設定されているかどうかを確認します。

あなたの問題はファイルへのアクセスにあるように思われるので、拡張属性に加えてACLが設定されているに違いありません。

ACLをecho | sudo chmod -E filename削除するには、ファイルまたはecho | sudo chmod -R -E directory nameディレクトリに対して実行します。

chmodのマニュアルページを参照してください


応答していただきありがとうございます。どうすればそれを取り除くことができますか?
VinnyD

動作するはずだと思う答えで更新しました。
ゾレダチェ

@Zoredache ACLパーミッションにはプラス記号が付いています。@は「拡張属性」です。

ええ、私はダブルチェックするときにそれを見ています。私は後方に覚えている必要があります。そして、ファイルに両方があるとどうなりますか?
ゾレダチェ

気にせず、Macを起動しました。@拡張属性と+aclセットがある場合、lsはを表示するよう@です。彼はファイルへのアクセスに問題があるため、ACLに問題がある可能性が高いと思われます。
ゾレダチェ

8

リンゴの検疫属性では、chmodだけでは削除できません。

属性を明示的に削除する必要があります。

sudo xattr -d com.apple.quarantine my_file

OPは「@は何の略ですか?」
カマフェザー

3

@は、標準の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)で確認しました。


0

-Eまたは-Nを使用している場合でも、実際には見えないことがわかりましたsudo。私がそれを修正できる唯一の方法は、ルートとしてログインすることでした


それは答えではありません。おそらくあなたが言及している答えに対するコメントであるべきです。
カマフェザー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.