「ls -al」実行後に+または@を表示

「ls -al」実行後に+または@を表示

Mac OS Xで「ls -al」を実行すると、次のような結果が得られます。

drwxrwxrwx+ 4 smcho スタッフ 136 5月5日 09:18に公開
drwxr-xr-x+ 6 smchoの社員204 2010年2月1日
drwxrwxrwx 9 smchoの社員306バックアップ2010年2月2日
drwxr-xr-x@ 36 smcho スタッフ 1224 9月4日 22:51 bin
  • 最初の列の終わりにある+または@はどういう意味ですか?
  • これはMacに固有のものですか、それともUNIXでは一般的ですか?

次へ追加

Michael Mrozekの答えに従って「ls -ale」を実行して、次のようになりました。

drwx------+ 66 smcho スタッフ 2244 8月30日 13:40 ライブラリ
 0: group:com.apple.sharepoint.group.3 は検索を許可します。
 1: グループ: すべてが削除を拒否しました
drwxr-xr-x 3 smcho スタッフ 102 9月4日 15:01 メール
drwx------+ smcho スタッフ 13人 442 8月28日 17:55 映画
 0:グループ:誰もが削除を拒否しました
drwx------+ 6 smcho Staff 204年7月9日 09:37 Music
 0:グループ:誰もが削除を拒否しました
drwx------+ smcho スタッフ 11人 374 8月28日 16:55 写真
 0:グループ:誰もが削除を拒否しました
drwxr-xr-x 3 smcho スタッフ 102 3月18日 15:43 プロジェクト
drwxrwxrwx+ 4 smcho スタッフ 136 5月5日 09:18に公開
 0:グループ:誰もが削除を拒否しました
drwxr-xr-x+ 6 smchoの社員204 2010年2月1日
 0:グループ:誰もが削除を拒否しました

追加のメッセージはどういう意味ですか?私のファイルの一部になぜ必要なのですか?私は彼らのために特別なことをしたことを覚えていません。

答え1

この@サフィックスはMac OSに固有のもので、以下に提供されています。この問題だから、そこから私の答えのこの部分をコピーしました。これは、ファイルに次のものがあることを意味します。拡張属性xattrコマンドラインユーティリティを使用してこれを表示および変更できます。

xattr --list filename
xattr --set propname propvalue filename
xattr --delete propname filename

サフィックスは、+ファイルにアクセス制御リストがあり、ACLをサポートするすべての* nixで共通であることを示します。lsこのフラグを指定すると、-eファイルの後に関連するACLが表示され、変更chmodに使用できます。ほとんどのコンテンツはchmodマニュアルページから入手できます。

を使用してACLを追加し、chmod +a "type:name flag permission,..."を使用して削除できますchmod -a。議論はchmod非常に複雑です。

  • タイプはいuser、またはユーザー名を指すのか、グループ名を指すのかgroupを明確にするために使用します。明示的なname場合は、型を省略できます。name
  • 名前ACL が適用されるユーザー名またはグループ。
  • バナーallowこのACLエントリが権限を付与するのか、それともdeny権限を拒否するのかです。
  • 許可する実際に変更された権限です。カンマで区切って任意の数だけリストできます。
    • 削除- ファイル/ディレクトリの削除を許可する
    • プロパティを読む- 基本プロパティを読む
    • 属性の書き込み--基本属性の作成
    • データの読み取り- 拡張属性の読み取り(xattr上記、使用)
    • 外部データの書き込み--拡張属性を書く
    • セキュリティを読む- ACL情報を読む
    • セキュリティ書き込み--ACL情報の作成
    • ジョン- 所有者の変更
    • ディレクトリ固有の権限
      • リスト- ディレクトリのファイル/フォルダを表示します。
      • 探す- ディレクトリ内の名前でファイル/フォルダを探す
      • ファイルの追加- ディレクトリに新しいファイルを作成します。
      • サブディレクトリの追加--ディレクトリの下に新しいディレクトリを作成します。
      • 子オブジェクトの削除- ディレクトリのファイル/ディレクトリの削除
      • 継承されたコントロール
        • ファイルの継承- ディレクトリのACLはファイルによって継承されます。
        • ディレクトリの継承- ディレクトリのACLはサブディレクトリに継承されます。
        • 継承の制限- サブディレクトリがディレクトリから継承したACLを継承しないようにする
        • 継承のみを受け取る- 新しく作成されたすべてのプロジェクトに継承されますが無視されます。
    • ファイル固有の権限
      • 読む- 読み取るファイルを開きます。
      • 書く- 書き込み用にファイルを開く
      • 追加- 追加するファイルを開きます。
      • 実装する- 実行可能ファイル

特定の例では、ほとんどのACLエントリはですgroup:everyone deny delete。つまり、everyoneグループ内のすべてのユーザー(もちろんすべての人)はフォルダの削除権限を拒否されます。これに関するドキュメントを見つけることはできませんが、これが重要なルートフォルダを削除するのを防ぐデフォルトのACLだと思います。そうでない場合は、誰かがそれを修正します。唯一の他の項目は、ディレクトリサービスがフォルダgroup:com.apple.sharepoint.group.3 allow searchから名前でファイルを検索できることです。/Library

関連情報