ツール
ガイド

chmod パーミッション計算機

開発

chmod の8進数、シンボル、3×3パーミッション行列を相互変換 — リアルタイム三方向同期。

100% クライアントサイド バックエンドなし

リモート URL の取得は行いません。JSON を直接貼り付けてください。

パーミッションビット
読み取り (4) 書き込み (2) 実行 (1)
所有者
0
グループ
0
その他
0
特殊ビット(プレフィックス)
$ chmod 0000 file
シンボル: a=
このページの内容

chmod 計算機とは?#

chmod は、ファイルやディレクトリの読み取り、書き込み、実行のパーミッションを設定する Unix コマンドです。そのパーミッションモデルは 3 つのグループ — 所有者グループその他 — で、それぞれが 3 つのオン/オフビットを持ちます。読み取り (4)書き込み (2)実行 (1) で、これらが合計されて 0 から 7 の 1 桁になります。3 つの桁を積み重ねると、コマンドラインで打つ 8 進モードになります。755 は「所有者は読み+書き+実行 (7)、グループは読み+実行 (5)、その他は読み+実行 (5)」を意味します。さらに setuidsetgid、sticky ビット用の任意の第 4 の特殊プレフィックス桁もあります。

ここで計算機が本当に有用になる理由は、パーミッション行列(ファイルマネージャで操作するチェックボックス)、8 進数755)、シンボル文字列(rwxr-xr-xls -l が印字するもの)の 3 者間の同値性です。ほとんどの人はこれらの表現の 1 つをよく学び、残りの 2 つにつまずきます。本ページは 3 つすべてを同期させます。どれか 1 つを変えると他の 2 つが即座に更新され、対応する chmod コマンドラインが組み立てられます。

これが重要なのは、間違ったパーミッションビットがデプロイを壊す最も一般的な原因の 1 つだからです — ウェブサーバーが読めないディレクトリ、開きすぎていて SSH に拒否される秘密鍵、x ビットを失った実行ファイル。755 を読んでそれが「ワールドリーダブル、グループとその他は横断できるが書き込めない」を意味すると知るのは、本ツールが翻訳をライブで示すことで鍛える技能です。

使い方#

  1. すでに持っている表現から作業します。
    • パーミッション行列のチェックボックスを操作します(3 行:所有者/グループ/その他、3 列:読み取り/書き込み/実行)。各行の右の列が、操作に応じてそのグループの 0〜7 の値を示します。
    • または8 進数値を入力します(1〜4 桁、0o プレフィックス受け付け、例: 75506440o600)。
    • またはシンボル値を入力します(rwxr-xr-x、カンマ形式 rwx,r-x,r-xu=rw,go=r のような chmod 節)。
  2. 特殊ビットが必要なら、特殊ビットフィールドセットの setuidsetgidsticky を操作します。これらはシンボル形式では所有者の実行スロットを占めます。setuid/setgid には sS、sticky には tT
  3. 結果カードを読みます。
    • 組み立てられたコマンドライン$ chmod <8進数> file。コピーReady。
    • シンボル形式、例: u=rwx,go=rx
    • 各 who の桁と読み取り/書き込み/実行の付与を示すグループごとの内訳。
  4. コピーでコマンドラインを取得します。
  5. ステータス行が解析を確認するか、8 進数やシンボルの入力が無効だったかを報告します。

主な機能#

  • 3 方向ライブ同期。 行列、8 進数、シンボルが互いに更新し合うため、知っているものを入力し、必要なものを読めます。
  • 特殊ビットの正しい処理。 setuidsetgid、sticky ビットは、ls が使う小文字/大文字の実行スロット表記(sStT)を含め、ロスなく処理されます。
  • 標準の 4 桁 8 進数。 出力は常に 4 桁(075547550000)で、chmodstat がモードを表示する方法に一致します — 特殊ビットが設定されているときに曖昧な 3 桁形式にはなりません。
  • 節形式シンボル。 シェルが受け付ける絶対代入形式(u=rw,go=rx)を発行し、簡潔さのため同一の隣接グループをマージし、特殊ビットを u+sg+s+t として追加します。
  • 寛容な入力解析。 75506440o600、9 文字のピクチャ、カンマ区切りバリアント、chmod 節(u=rwx,go=rxu+rwx,go-w)を受け付けます。

実例#

デプロイされたウェブディレクトリで最も一般的なモード。8 進数フィールドに 755 と入力します。行列は所有者 読み+書き+実行、グループ 読み+実行、その他 読み+実行にチェックを入れ、シンボルフィールドは rwxr-xr-x を示し、結果カードは次を読みます。

$ chmod 755 file
Symbolic: u=rwx,go=rx

内訳は所有者 7(読み、書き、実行)、グループ 5(読み、実行)、その他 5(読み、実行)を示します。これがディレクトリと実行可能スクリプトの標準モードです。所有者はすべてでき、他の全員は読んで横断できるが変更はできません。

次に 644 — 通常の配信ファイル向けの安全なモード — と比べます。シンボルは rw-r--r-- になり、コマンドは $ chmod 644 file です。所有者は読み書きでき、グループとその他は読むだけです。決定的に、誰も実行を持たないため(ダウンロードしたファイルが誤って実行されることはありません)。プライベート SSH 鍵なら 600rw-------)と入力します。これは ssh が受け付ける唯一のモードです。

特殊ビットの例:所有者の権限で走らなければならないバイナリ。4755 と入力するとシンボルスロットは rwsr-xr-x になります — 所有者の実行位置の s に注目してください。setuid を示します。コマンドラインは $ chmod 4755 file となり、先頭の 4 が 3 桁形式では表現できない特殊プレフィックス桁(setuid = 4)です — だからこそ本ツールは常に 4 桁を発行します。

よくある質問#

7550755 の違いは何ですか?#

コマンドラインでは等価です — chmod 755chmod 0755 は同じモードを生成します。先頭の 0 は単に「特殊ビットなし」を意味するためです。本ツールは常に 4 桁(0755)を表示し、特殊ビットの位置を見えるようにし、statls がモードを報告する方法と一致させます。コマンドラインをコピーするとき、人が打つものなので従来の $ chmod 755 file 形式が使われます。

シンボル出力の sStT は何ですか?#

実行スロットを占める特殊ビットです。小文字 s(所有者またはグループ位置)は setuid/setgid かつ実行オンを意味します。大文字 S はビットが設定されているが実行がオフことを意味します。小文字 t(その他の位置)は sticky かつ実行オン、大文字 T は sticky 設定で実行オフです。この「大文字=実行なし」の慣習が、ls が余分な列なしで 2 つの状態を区別する方法です。

実際に chmod を実行するとき、8 進数とシンボルのどちらを使うべきですか?#

どちらも動作しますが、挙動が異なります。8 進数(chmod 755 file)はモードを絶対に設定します — すべてのビットが打った通りに設定されます。シンボル(chmod u+x file)は現在のモードを編集します — 言及したビットだけを変え、残りはそのままにします。既知の最終状態が欲しいとき(デプロイスクリプト、Dockerfile)は 8 進数を使い、他を扰さず 1 つのパーミッションを動かしたいときはシンボルを使います。

なぜ SSH は秘密鍵を「bad permissions」エラーで拒否するのですか?#

ssh は秘密鍵がモード 0600(所有者の読み/書きのみ)であることを要求し、それより開いているものは安全でないとして拒否するためです。鍵が 0644 だったりグループ/その他に書き込みがあったりすると、ssh は改ざん可能とみなし、使用を拒否します。$ chmod 600 id_ed25519 で設定するとエラーが消えます。コマンドを実行する前に、ここで正確なモードを検証できます。