日本語

開発者ツール · Chmod 計算機

chmod シンボリック モードの説明: u+x、g-w、o=r、および a+rX

· 仕組み

chmod unix 開発者ワークフロー

シンボリック割り当てを別個の Unix パーミッション ビット図として表示
オリジナル ToolAcre ベクトル イラスト

chmod の記号形式は、誰、演算子、どのビットという小さな文法です。この投稿では、u+x と go-rwx が明らかになるように分解し、シンボリックが 8 進数を上回るタイミングを示します。

文字だらけのデプロイ スクリプト — chmod u+x,go-wdeploy.sh は機能しますが、チームの誰もそれが何を変えるのかを言うことができません

u+x などのコマンドは、電卓の記号表示に似ていますが、2 つの形式の役割は異なります。編集可能なシンボリック フィールドは 9 つの許可位置を受け入れ、オプションでその前に認識されたファイル タイプ文字を付けることができます。対照的に、生成された chmod 引数は、u=、g=、および o= 句を使用した完全な代入を詳しく説明するため、相対的な変更を解析するのではなく、固定モードを表します。

750 と入力すると、区別が明確になります。表示は rwxr-x--- ですが、生成される割り当ては u=rwx,g=rx,o= です。どちらも同じ所有者、グループ、その他のビットを記述しますが、2 番目のみが chmod 引数としてフォーマットされます。ページがそのコマンドを実行することはありません。これにより表現が公開されるため、個別のシェル アクションの前に提案された値を確認できます。

電卓は、生成する割り当てリストから ls スタイルの表示を分離します。

文字 u、g、および o は、所有者、グループ、その他にラベルを付けるため、生成された割り当てに表示されます。すべての出力では、クラスに権限がない場合の空の句を含め、3 つのクラスすべてに明示的に名前が付けられます。電卓は、省略された Who 文法や省略表現を解析しません。その入力は、結果が既存のターゲットに依存する命令ではなく、完了モードから開始されます。

この修正により、微妙な過剰要求が防止されます。マトリックスは、どのクラスが読み取り、書き込み、または実行を受け取るかを正確に示すことができますが、省略されたクラス セレクターが別の chmod 実装で何を意味するかを決定することはできません。代わりに、3 つの行列の列を 3 つの代入句と比較します。これらの合意により、このインターフェイスが実装していない相対コマンド ルールに依存せずに固定値が検証されます。

生成された課題に誰の文字が表示されるか。相対省略 - who 文法が解析されない

代入ジェネレーターは、通常のクラスごとに = を使用します。この選択により、空の右側を発行することによるクラスのクリアを含め、要求された所有者、グループ、およびその他のトリプルが正確に再構築されます。 + と - はシンボリック chmod コマンドに属しますが、電卓の入力としては受け入れられません。したがって、このページでは、未知の開始モードからの増分追加または削除をモデル化しません。

1 ビットの比較により、サポートされているワークフローが何を証明できるかを示します。モード 750 は rwxr-x をレンダリングします ---;グループ桁を 7 に変更すると、rwxrwx--- が生成され、g=rx が g=rwx に変更されます。計算機は、完了した前後のモードを識別します。現在のモード、パス、ファイルシステム、またはコマンドの実行が変換に関与しないため、ライブ ファイルに対して g+w は評価されません。

生成された演算子は = ですが、+ と - の入力文法はツールの外部に残ります。

パーサーは、固定位置の r と w に加えて、通常の実行位置の x または - を認識します。また、特殊ビットがそれらの位置を共有する s、S、t、および T も受け入れます。大文字 X は異なります。これは相対 chmod 文法に属しており、ここではサポートされていません。 X を指定すると、通常の実行ビットとして暗黙的に解釈されるのではなく、拒否されます。

小文字と大文字の特殊文字は意図的に実装されています。 Setuid と setgid は、一致する実行ビットが存在する場合は s を使用し、存在しない場合は S を使用します。 Sticky は、他の実行位置で同じ規則に従って t または T を使用します。特別な行と 4 桁の要約では、これらのビットが保持されます。これらはいずれも、ファイルおよびディレクトリ全体にわたる条件付き大文字 X 選択のサポートを追加しません。

パーサーは、r、w、x、s、S、t、および T を受け入れます。大文字の X はサポートされていません

g=u などのクラスコピー式は実装されていません。計算機は、既存のオブジェクトからソース クラスを読み取ったり、あるクラスのビットを別のクラスに適用したりすることはありません。完全な 8 進数または ls スタイルのモードを受け取り、その値を名前付きブール値に変換し、クラスごとに明示的なフラグを発行します。コピーされた結果は、このページで検査する前に別の場所で計算する必要があります。

外部ステップが、所有者とグループの両方に rwx が必要であるが、他には rwx がないことが決定されたとします。 770 と入力すると、rwxrwx--- および u=rwx,g=rwx,o= が生成されます。これは完成した結果を裏付けるものですが、それがどのように導き出されたのかを証明するものではありません。所有者も不明のままです。コンバーターは、ターゲットに遭遇する実際の所有者、グループ、またはプロセスを識別せずにクラスにラベルを付けます。

クラス間のアクセス許可のコピーは実装されていません

モード 0750 は先頭のゼロとともに受け入れられ、750 と同じ値として解析されます。所有者の数字 7 は、読み取り、書き込み、および実行をアクティブ化します。グループ数字 5 は読み取りと実行をアクティブ化します。他の数字 0 は何もアクティブにしません。同期表示は rwxr-x--- になり、常に 4 桁の概要により、0750 が明確なレビュー値として表示されます。

その固定モードに対して生成されたシンボリック割り当ては u=rwx,g=rx,o= です。その 3 つの句は行列の列に直接対応しますが、8 進数のコマンド プレビューでは、特別なビットに 4 桁目が必要な場合を除き、750 が使用されます。指定されたパスはプレビューで引用される場合がありますが、開かれることはありません。この例では、所有権、承認、または成功したアクセス許可の変更ではなく、表現を検証します。

動作例: 固定モードとしての 0750 と生成された割り当てリスト

参照ベースの変更、シンボリックリンクの処理、および ACL 操作は、このコンバーターの外部に残ります。このページには、参照ファイル入力、パス トラバーサル、ACL エントリ モデル、またはファイル システム クエリはありません。再帰を選択すると、表示される -R フラグが追加されるだけです。その結果、生成されたコマンドは、どのオブジェクトに到達するか、または別のアクセス制御層が効果的な結果を変更するかどうかを報告できません。

無効な入力は、有用な境界チェックを提供します。間違って配置された許可文字、サポートされていない X、末尾のマーカー、または不正な形式の 8 進数は、修復されずに拒否されます。サポートされている 9 文字表示にテキストを修正すると、モードと同期されたビューが生成されます。この受け入れは、文字列が実装された 12 ビットにマッピングされていることを証明するだけです。外部 chmod 機能やターゲット環境は検証されません。

参照、シンボリックリンク、ACL の操作はこのコンバーターの外部に残ります

実際の区別は、ls 形式の表示と生成された固定割り当ての間であり、相対としてのシンボリック入力と絶対としての 8 進数入力の間ではありません。どちらの編集可能なフォームも完成モードを表します。電卓は、いずれかを同じ整数、行列、概要、説明、およびプレビューに変換し、シンボリック コマンド形式に対して明示的な u=、g=、および o= 句を出力します。

これらの同期されたビューを使用して、算術ミスを見つけます。 750、rwxr-x---、および u=rwx,g=rx,o= が同時に表示される場合、固定モードは内部的に一貫しています。実際のシステムがさらなる証拠を提供しない限り、そこで終了します。このページは、相対演算子、省略されたセレクター、クラスのコピー、または大文字の X を解析せず、モードが実際に失敗した操作に対処しているかどうかを判断できません。