日本語

開発者ツール · Chmod 計算機

chmod の 8 進数が rwx 許可ビット (4、2、1) にマップされる方法

· 仕組み

chmod ユニックス 開発者のワークフロー

8 進の許可数字は所有者、グループ、およびその他の rwx ビットに分割されます
オリジナル ToolAcre ベクトル イラスト

8 進数のそれぞれは、偽装された 3 つのバイナリ フラグです。この投稿では、7 を rwx に、5 を r-x に変換する算術を示します。これにより、ルックアップ テーブルを使用せずに任意のモードで読み取りと書き込みが可能になります。

貼り付け続ける番号 — chmod 755 は機能しますが、5 が何を誰に与えるのかはわかりません

フォーラムの回答にそう記載されているために chmod 755 を実行すると、アプリケーションが必要とする以上のアクセスが許可される可能性があります。 Unix モードは、誰がファイルを読み取り、書き込み、実行できるかをコンパクトにエンコードしたものです。この番号は、許可が拒否されるたびに貼り付ける任意の設定ではありません。変更する前に、どの ID がファイルを所有しているか、プロセスがどのグループとして実行されているか、どのアクションが実際に失敗したかを確認してください。構文的に有効なモードでは、間違った所有者や親ディレクトリの実行権限の欠落は解決されません。

3 つのクラス、3 桁 - 所有者、グループ、その他のそれぞれに、固定された順序で 1 つの 8 進数が与えられます。

3 つの 8 進数は、所有者、グループ、その他の 3 つのクラスを順番に表します。 640 では、所有者は 6 を取得し、グループは 4 を取得し、他の全員は 0 を取得します。「その他」とは、root アカウントやサービス アカウントを意味するものではありません。これは、通常のモード ビット チェックでは、所有者にもファイルのグループにも一致しない ID を意味します。オプションの先頭の 4 桁目は、setuid、setgid、sticky などの特別なモードを処理します。これは別のトピックであり、後続の 3 桁から推測すべきではありません。

4 を読み取り、2 を書き込み、1 を実行 — 重みが 2 のべき乗である理由と、重みが 0 から 7 までの値にどのように加算されるか

各クラスには、read=4、write=2、execute=1 の重みを持つ 3 ビットがあります。許可された重みのみを追加します: 7=4+2+1 (rwx)、6=4+2 (rw-)、5=4+1 (r-x)、および 0=---。これらは 2 の累乗であるため、3 つの独立したフラグを組み合わせても、他のフラグと同じ合計が得られることはありません。ディレクトリの実行は、「このフォルダを実行する」ではなく、トラバースを意味します。ファイル自体に読み取り権限がある場合でも、ユーザーがディレクトリ内のファイルにアクセスするにはディレクトリが必要になることがよくあります。

実用的な例: 640 と 751 を手動でデコード - 各数字を 2 進数の 3 進数に変換してから、rwx 文字に変換する

640 をクラス別にデコードします: 6 -> バイナリ 110 -> rw-; 4 -> 100 -> r--; 0→000→---。 9 つの許可文字は rw-r----- です。 751 をデコードします: 7 -> rwx、5 -> r-x、1 -> --x となり、rwxr-x--x になります。 751 の「other」が読み取りや書き込みを行わずにどのようにトラバースまたは実行できるかに注目してください。これはディレクトリに対して意図的なものである可能性がありますが、機密ファイルについては検討する価値があります。例を覚えるのではなく、Chmod 計算機を使用して、8 進数出力とシンボリック出力を比較します。

逆の方法: ls -l から 8 進数へ — rwxr-x を読み取り、クラスごとの重みを追加します

rwxr-x--- などのシンボリック モードから逆方向に作業します。所有者は 4+2+1=7、グループは 4+1=5、その他は 0 です。結果は 755 ではなく 750 です。長い ls -l 表示でも先頭にファイル タイプ文字があり、ACL の末尾に + が表示される場合があるため、表示文字列全体を 3 桁の算術演算に入力しないでください。ディレクトリの場合、隣接するファイルのモードをコピーするのではなく、クラスごとに個別に読み取り/書き込み/実行を計画します。

これでカバーされないもの — setuid、setgid、sticky の先頭の 4 桁、および ls でプラス記号が付けられた ACL

この 7 セクションのウォークスルーでは、通常の 9 つの許可ビットについて説明します。 setuid、setgid、sticky の先頭の 4、2、または 1 については説明していません。これらのビットはプログラムまたはディレクトリの動作を変更し、シンボリック出力では s/S または t/T で表されます。アクセス制御リストでは、この単純な図を超えてアクセスを許可または拒否できます。 ToolAcre 計算機は追加の特殊ビットをサポートしていますが、運用システムで有効にする前に、それらの個別の説明を読む必要があります。

要点: モードは計算できる 9 ビットです。Chmod 計算ツールを使用すると、ブラウザーでどちらの方向の変換も確認できます。

モードとは、呪文ではなく、計算できる 9 つのフラグです。 Chmod 計算機はブラウザーで 8 進形式と記号形式を変換するため、chmod コマンドを自分で実行する前に提案されたモードをテストできます。このツールはコンピューター上のアクセス許可を変更しません。シェルとファイルシステムはユーザーの制御下にありますが、文字列と推論は提供されます。