web-dev-qa-db-ja.com

ICACLS.EXEの出力を行ごと、項目ごとに説明する

これは何を意味するのでしょうか:

C:\foo\> icacls .
. NT AUTHORITY\IUSR:(M)
  BUILTIN\IIS_IUSRS:(M)
  BUILTIN\IIS_IUSRS:(OI)(CI)(M)
  NT AUTHORITY\IUSR:(OI)(CI)(M)
  BUILTIN\IIS_IUSRS:(I)(OI)(CI)(RX)
  NT AUTHORITY\IUSR:(I)(OI)(CI)(RX)
  NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)

最初の1つは、useridがディレクトリの変更権限を取得することを意味すると思います。つまり、ユーザーはファイルを作成したり、ファイルを更新したり、ファイルを削除したりできます。正しい? 「NT AUTHORITY\IUSR」ユーザーとは何ですか?それは本当に単一のユーザーIDですか?デフォルトIISユーザーIDですか?

わかりました。2行目はグループを指していると思います。同じ権限を取得します。

(I)や(OI)などのすべての行についてはどうでしょうか。説明してください。

16
Cheeso

ICACLSに関するMicrosoftの記事 から

エントリは、そのファイルに固有のユーザーとグループ(DOMAIN\USERまたはGROUP)です。リストされている権限は次のとおりです。

SIDは、数値形式またはフレンドリ名形式のいずれかです。数値形式を使用する場合は、ワイルドカード文字*をSIDの先頭に付加します。

icaclsは、ACEエントリの正規の順序を次のように保持します。

  • 明示的な拒否
  • 明示的な付与
  • 継承された拒否
  • 継承された助成金

Permは、次のいずれかの形式で指定できる許可マスクです。

  1. 単純な権利のシーケンス:
    • [〜#〜] f [〜#〜](フルアクセス)
    • [〜#〜] m [〜#〜](アクセスを変更)
    • [〜#〜] rx [〜#〜](読み取りおよび実行アクセス)
    • [〜#〜] r [〜#〜](読み取り専用アクセス)
    • [〜#〜] w [〜#〜](書き込み専用アクセス)
  2. 特定の権利の括弧で囲まれたコンマ区切りのリスト:
    • [〜#〜] d [〜#〜](削除)
    • [〜#〜] rc [〜#〜](読み取りコントロール)
    • [〜#〜] wdac [〜#〜](DACを書き込む)
    • [〜#〜] wo [〜#〜](所有者の書き込み)
    • [〜#〜] s [〜#〜](同期)
    • [〜#〜] as [〜#〜](アクセスシステムセキュリティ)
    • [〜#〜] ma [〜#〜](最大許容値)
    • [〜#〜] gr [〜#〜](一般的な読み取り)
    • [〜#〜] gw [〜#〜](一般的な書き込み)
    • [〜#〜] ge [〜#〜](汎用実行)
    • [〜#〜] ga [〜#〜](総称)
    • [〜#〜] rd [〜#〜](データ/リストディレクトリの読み取り)
    • [〜#〜] wd [〜#〜](データの書き込み/ファイルの追加)
    • [〜#〜] ad [〜#〜](データを追加/サブディレクトリを追加)
    • [〜#〜] rea [〜#〜](拡張属性の読み取り)
    • [〜#〜] wea [〜#〜](拡張属性を書き込む)
    • [〜#〜] x [〜#〜](実行/トラバース)
    • [〜#〜] dc [〜#〜](子を削除)
    • [〜#〜] ra [〜#〜](属性を読み取る)
    • [〜#〜] wa [〜#〜](属性を書き込む)

継承権は、Perm形式の前に付けることができ、ディレクトリにのみ適用されます。

  • (OI):オブジェクト継承
  • (CI):コンテナ継承
  • (IO):継承のみ
  • (NP):継承を伝播しません
  • (I):親コンテナから継承された権限

ファイルの場合、パーミッションマスクは一目瞭然です。Rはファイルを読み取ることができることを意味し、Xはファイルを(プログラムとして)実行することを許可します。

その他の種類のオブジェクトについては、MSDNを参照する必要があります。

英語での相続権:

  • (I) "継承":このACEは親コンテナから継承されました。
  • (OI) "オブジェクトの継承":このACEは、このコンテナに配置されたオブジェクトによって継承されます。
  • (CI) "コンテナの継承":このACEは、このコンテナに配置されたサブコンテナによって継承されます。
  • (IO) "継承のみ":このACEは継承されますが(OIおよびCIを参照)、このオブジェクト自体には適用されません。
  • (NP)「伝播しない」:このACEは、オブジェクトとサブコンテナに1レベルの深さで継承されます。サブコンテナ内のものには適用されません。

ファイルシステムの場合、「コンテナ」はフォルダを意味し、「オブジェクト」はファイルを意味しますが、ACLは他の多くの種類のオブジェクトに設定できることに注意してください。すべてに「コンテナ」の概念があるわけではありません。

24
MaQleod