開発者ツール · Chmod 計算機
umask が新しいファイルとフォルダーのデフォルトのアクセス許可を決定する方法
· 仕組み
chmod unix 開発者ワークフロー
新しいファイルは 777 で開始されません。最初にマスクが適用されます。この投稿では、正確なビット単位の操作、ファイルとディレクトリが異なる結果になる理由、および umask 022、027、077 について推論する方法を示します。
ファイルは Web サーバーが読み取ることができません。cron ジョブは 600 ファイルを nginx が提供するディレクトリに書き込みますが、誰も chmod を実行しませんでした。
新しく観察されたファイル モードは、それを生成したプロセスが不明な場合でも、ここでデコードできます。 600 と入力すると、電卓に「rw------: 所有者は読み取りと書き込み、グループなどの権限はありません」と表示されます。これは、提供された結果のビットを説明しています。スケジュールされたジョブがその値を生成した理由や、Web プロセスがファイルを読み取ることができるかどうかは確立されません。
条項 501 は、必要な診断上の制約を提供します。有効なモードでも、間違った所有権または親ディレクトリの実行ビットが欠落している状態が共存する可能性があります。このページは、プロセス ID もパス情報も受け取りません。 600 と提案された 640 を比較し、追加されたグループ読み取りビットを公開できますが、元のモードを umask、サービス、シェル、またはファイルシステムに帰すことはできません。
新しい権限の取得元 — 要求されたモード (通常、ファイルの場合は 666、ディレクトリの場合は 777) とプロセスの umask
要求された作成モードと umask は、計算機コントロールではなく、バックグラウンド入力です。 umask フィールドはなく、ファイルまたはディレクトリを作成する操作もありません。したがって、作成モードのサンプルは、外部で計算された結果として到着する必要があります。計算機は、値が提供されると、値がどのように取得されたかを主張することなく、その結果を 8 進形式、記号形式、行列形式、要約形式、および平易な英語形式の間で変換できます。
同期された出力は実際よりも信頼できるように見える可能性があるため、この修正されたスコープは重要です。 640 と入力すると、rw-r----- が返され、所有者 read/write とグループ読み取りを識別します。ページではその表現を確認できます。ログイン プロセス、スケジュールされたタスク、サービス、コンテナ、またはストレージ システムのデフォルトを予測することはできません。これらのコンテキストがその入力または実装に現れないためです。
要求された作成モードと umask は、ここでは実装されていないバックグラウンド入力です
AND-NOT 演算は、この計算機の外部で実行する必要があります。そのコアは 1 つの完全な整数を受け入れ、それを名前付きフラグに分解します。作成マスクの 2 番目のオペランドはありません。したがって、このページでは、マスク式を示したり、減算とビット単位の演算を比較したり、結果のモードに入る前に外部計算が正しく実行されたかどうかを判断したりすることができません。
チェックできるのは、最終的なビットパターンです。別の信頼できるソースが 640 を提供する場合、マトリックスには所有者の読み取りと書き込み、グループの読み取りが表示され、その他のアクセス許可は表示されません。リビルド時にグループ読み取りを変更すると 600 が行われ、リビルド時に他の読み取りが変更されると 644 が行われます。これらの遷移は、作成マスクの計算や目に見えないプロセスに関する証拠として提示することなく、コンバーター内のモード演算を検証します。
AND-NOT 演算は電卓の外部で実行する必要があります
計算機は、結果のファイル モードとディレクトリ モードを比較できますが、どちらも作成しません。 644 を選択すると、通常のファイルの説明でファイルの読み取りと変更が説明されます。ターゲットをディレクトリに切り替えると、これらの動詞がリスト化、エントリの変更、および名前への到達に変更されます。整数は 644 のままです。この対比は、どの作成がプログラム リクエストのデフォルトであるかを主張することなく、ターゲット タイプが重要である理由を示しています。
別途提供された 755 結果も同様に検査できます。表示は rwxr-xr-x で、すべてのクラスに対して実行がアクティブになります。 644 は rw-r--r-- で、実行は全体を通して存在しません。このページではその違いが明確に明らかにされています。 666、777、022、またはその他のバックグラウンド入力からの値は導出されません。これらの計算は CHMOD_SOURCES に実装されていないためです。
計算機は、結果のファイル モードとディレクトリ モードを比較できますが、どちらも作成しません。
制限マスクの例では、計算を外部に保持し、指定された結果のみをデコードします。観察された通常のファイルが 640 の場合、計算機は rw-r-----; をレンダリングします。監視されているディレクトリが 750 の場合、rwxr-x--- が表示されます。所有者は両方でより広範なアクセスを保持し、グループはより狭いセットを受け取り、他のグループは何も受け取りません。これらのステートメントは、完成したモードから直接続きます。
外部から提供される別のペア、600 と 700 は、同じレビュー メソッドをその起源を主張せずに表示します。モード 600 では、所有者のみがファイルの読み取りと書き込みを行えます。モード 700 では、ディレクトリに対する読み取り、書き込み、および実行のみが所有者に与えられます。コンバーターは各クラスとビットを確認できますが、それ自体の証拠からどちらの結果も特定の umask 設定と照合することはできません。
作業例: 制限マスクの外部計算結果をデコードする
プロセスが umask を取得する場所は、リポジトリの証拠の外にあります。計算ツールには、シェル、スケジューラー、サービス マネージャー、コンテナー、またはプロセス環境との統合は含まれていません。したがって、これらのシステムの 1 つをモードの原因として指定すると、ページで観察される内容を超えることになります。他の場所で収集された信頼できるモードから始めて、その所有者、グループ、およびその他のビットを判読できるようにするためにのみこのルートを使用します。
コマンド プレビューでは、その証拠のギャップは埋められません。指定されたパスを引用し、オプションで -R を表示できますが、パスを開いたり、プロセス設定を読み取ったりすることはありません。同様に、ターゲット セレクターは、オブジェクト タイプを検出するのではなく、説明言語を変更します。一貫した変換により、権限に関する質問が絞り込まれます。どのコンポーネントがモードを選択したか、あるいはその選択が意図的であるかどうかは明らかにされません。
プロセスが umask を取得する場所はリポジトリの証拠の外です
デフォルトの ACL と明示的な作成モードは、このツールの外部にあります。そのデータ モデルには、1 つの所有者クラス、1 つのグループ クラス、その他全員、および 3 つの特殊ビットがあります。名前付き ACL エントリ、ACL マスク、作成呼び出し、プログラム引数はありません。したがって、計算機は、完了したモードが別のアクセス制御層から生じたのか、それとも特定のリクエストを供給するアプリケーションから生じたのかを判断できません。
これらのメカニズムをまとめなくても、モードをチェックできます。観測された 8 進数値を入力し、9 つの記号位置を確認し、行列を 4 桁の要約と比較します。一致する場合、従来のモードは正しくデコードされています。デフォルト、ACL の影響、またはプログラムの動作に関する主張には、同じ整数の別の解釈ではなく、作成者とファイルシステムからの証拠が必要です。
デフォルトの ACL と明示的なオープン モードはこのツールの外にあります
修正されたワークフローは別の場所で計算され、ここで結果のモードを検査します。完全な 8 進数または ls 形式の文字列を指定し、同期されたフィールドで各ビットを公開します。検証では、不正な記号位置にある不正な 8 進数字と文字が検出されます。 umask 式の検証、作成コンテキストの検出、将来のファイルやディレクトリが何を受け取るかを予測することはありません。
結果を 1 つの診断レイヤーとして扱います。デコードされた 640 または 750 は、予期しない許可または実行ビットの欠落を明らかにする可能性がありますが、記事 501 は、所有権と親ディレクトリのトラバーサルを個別に確認するよう警告しています。原因を特定する前に停止してください。この計算ツールは、指定された値がアクセス許可にどのようにマッピングされるかを証明します。シェル、サービス、コンテナ、ACL、またはファイルシステムのデフォルトに関する主張の根拠は提供されません。