開発者ツール · Chmod 計算機
chmod の 4 桁目: setuid、setgid、およびスティッキー ビットの動作方法
· 仕組み
chmod unix 開発者ワークフロー
4755 や 2775 などのモードには、プログラムの実行者または新しいファイルの所有者を変更する先頭の数字が含まれます。この記事では、3 つの特殊ビットと、それらが ls -l でどのように表示されるかを説明します。
drwxrwsr-x の s — 共有プロジェクト ディレクトリの動作が異なり、ls 出力には基本的なチートシートにない文字が含まれています
rwxrwsr-x の s は、setgid が有効であり、グループ実行も有効であるという 2 つの事実を 1 つの位置に記録します。この実装では、setgid を 8 進数の 2000 として保存し、グループ実行文字を s に置き換えます。ディレクトリ タイプ マーカーが選択されている場合、モード 2775 は drwxrwsr-x として表示されますが、4 桁の概要では先頭の特殊ビットの桁が保持されます。
その出力は変換であり、ファイルシステムの観察ではありません。ターゲット セレクターは、ページでビットを説明する方法を変更しますが、ディレクトリを開いたり、所有権を調べたりすることはありません。ディレクトリの場合、実装された説明では、新しく作成されたファイルはディレクトリのグループを継承すると述べています。特定のストレージ システムがその動作を適用するのか、それとも別のポリシーがアクセスに影響を与えるのかを判断するには、この計算以外の証拠が必要です。
4 番目の数字とその文字 — おなじみのモードのプレフィックスとしての 4、2、および 1。実行位置では s と t として表示され、その下の実行ビットがオフの場合は大文字になります。
先頭の 8 進数は、3 つの独立したマスクを組み合わせています。setuid は 4000、setgid は 2000、sticky は 1000 です。これらの文字は、9 桁の表示に文字を追加するのではなく、既存の実行位置を占めます。 Setuid はオーナーの位置を使用し、setgid はグループの位置を使用し、他の位置はスティッキーを使用します。マトリックスは、通常の読み取り、書き込み、実行とは別に 3 つすべてを公開します。
Case は、基礎となる実行ビットを明らかにします。所有者の実行には setuid が伴うため、モード 4755 は rwsr-xr-x をレンダリングします。 4644 は rwSr--r-- をレンダリングしません。パーサーは両方の形式を対応する特殊ビットと実行ビットに読み取ります。同じ下位対上位ルールにより、setgid の場合は s または S、スティッキーの場合は t または T が生成され、ラウンドトリップ中にすべての組み合わせが保持されます。
実行可能ファイルの setuid — /usr/bin/passwd がファイル所有者の権限でどのように実行されるか、および Linux が解釈されたスクリプトの setuid を無視する理由
通常のファイルの場合、実装された setuid の説明は所有者の実行に依存します。両方のビットが存在する場合、ページには、ファイルの実行には呼び出し元の ID ではなくファイル所有者の ID が使用されると表示されます。所有者が実行せずに setuid が存在する場合、表示には大文字の S が使用され、実行するものが何もないことが説明されます。これは、このセクションのソースに裏付けられた修正された範囲です。
計算機は、特定の実行可能ファイルを識別したり、実行可能ファイルを起動したり、プラットフォームがスクリプトをどのように処理するかを検査したりしません。その証拠は、提供されたモードとターゲットの選択です。モード 4755 は setuid と rwxr-xr-x に分解でき、割り当てプレビューでは通常の句の後に u+s が追加されます。これはレンダリングと説明のみを検証します。プログラムの適合性と実際の実行は外部の問題として残ります。
setuid のレンダリングと通常ファイルの説明
ディレクトリの Setgid は、通常のグループ権限とは独立して表されます。モード 2775 は、2000 マスクを所有者およびグループ 7 およびその他の 5 と組み合わせます。ディスプレイ rwxrwsr-x は、表示されている x を s に置き換えながら、グループの読み取り、書き込み、および実行を維持します。 The directory explanation associates the special bit with inheritance of the directory's group for newly created files.
setgid を保持したままグループの実行を削除すると、グループ位置の文字が大文字の S に変更されます。この表示される警告は、ターゲットの文言に関係なく、レンダラーから直接表示されます。このページでは、これらの完了した値を比較し、どのチェックボックスが変更されたかを表示できますが、共有ディレクトリ、その現在のグループ、またはエントリを作成している ID を検査することはできません。 Agreement among the views is arithmetic evidence, not operational approval.
ディレクトリのスティッキー ビット — /tmp の制限付き削除と、1777 が 777 と同じではない理由
Sticky はその他の実行位置を占め、8 進数の 1000 を提供します。ディレクトリ モード 1777 の場合、すべての通常のアクセス許可は有効のままで、最後の記号文字は t になります。実装されたディレクトリの説明では、削除と名前変更の制限が追加されていますが、777 の説明では、スティッキーなしで書き込み可能なディレクトリについて警告されています。したがって、コンバータは、基礎となる rwx トリプルを変更せずに 1 ビットの違いを可視化します。
他の実行なしでスティッキーが存在する場合、最後の文字は代わりに大文字の T になります。 The parser and renderer preserve that distinction in both directions.このページでは、実際の共有ディレクトリ、エントリの所有者、または削除の試みは検査されません。その信頼できる結論はより限定的です。提供された整数にはスティッキーが含まれており、その実行コンパニオンは大文字と小文字を区別して表示され、ディレクトリ指向の説明テキストが選択されています。
作業例: 共有ディレクトリ用の 2775 の構築 — 数字と同等のシンボリック chmod g+s,a+rwx,o-w の導出
2775 を 4 つの表示可能なコンポーネントとして構築します: setgid の特殊数字 2、rwx の所有者数字 7、rwx のグループ数字 7、r-x のその他の数字 5。完成した値を入力すると、rwxrwsr-x が生成されます。マトリックスでは setgid が個別に選択されますが、概要ではその特別なビットとともに所有者、グループ、その他のアクセス許可の名前が付けられます。
生成される割り当てリストは u=rwx,g=rwx,o=rx,g+s です。これは 9 文字表示とは異なりますが、同じ 12 ビット値を表します。ディレクトリを選択すると、説明が実装されたグループ継承の文言に変わります。ファイルを選択すると、2775 は変更されずに文言が変更されます。計算機はターゲットのグループを検証したり、ファイルを作成したりすることはありません。そのため、この例はデプロイメントの処方箋ではなくモデルのままです。
実用的な例: 共有ディレクトリ モデルの 2775 の構築と読み取り
マウントの動作、機能、および追加のプラットフォーム セマンティクスはモデル化されていません。 The page has no mount input, capability set, kernel query, or filesystem probe. It can represent setuid, setgid, and sticky and can vary its explanation between regular files and directories.外部ルールがこれらのビットを実際のターゲット上で無効化、拡張、または異なる方法で解釈するかどうかを確立することはできません。
ソースのコーナーの文言であっても、インターフェイスを超えて一般化すべきではありません。 A valid special-bit mode proves that the parser, renderer, matrix, summary, and generated assignments agree.実行、継承、または削除動作が発生したことを証明するものではありません。サポートされていないポリシー要求を診断から除外し、個別に検査された環境で不足しているコンテキストが提供されるまで、コピーされたコマンドを不活性テキストとして扱います。
マウント ポリシー、機能、および未実装のコーナー セマンティクスは外部のままです
The implemented takeaway is a round trip with positional meaning. Setuid は所有者の実行位置にマップされ、setgid はグループ実行にマップされ、スティッキーは他の実行にマップされます。 Lowercase means the associated execute bit is on;大文字はオフを意味します。 The leading octal digit and dedicated checkboxes preserve the same information, so no special bit needs to be inferred from prose alone.
Test a special mode by comparing all representations. For 2775, expect the leading 2, group-position s, a checked setgid box, and a generated g+s addition.不一致があると、変換の問題が発生する可能性があります。合意により確立される一貫したモードは 1 つだけです。所有権、マウント ポリシー、機能、アプリケーション ルール、および chmod 実行の結果は、ブラウザーの計算ツールの証拠を超えたままです。