N2
NanToo
開発者向け

chmod 計算機 (8 進 ↔ rwx ↔ ugo 相互変換)

Unix/Linux のファイルパーミッションを 8 進数 (755 等) ↔ シンボリック (rwxr-xr-x) ↔ ugo 表記 (u=rwx,g=rx,o=rx) で相互変換するツール。 setuid / setgid / sticky の特殊ビットも対応、 755 / 644 / 600 / 1777 などよく使う例のプリセット付き。

chmod 計算機 (8 進 ↔ rwx ↔ ugo 相互変換)について

chmod 計算機とは

このツールは、 Linux/Unix のファイルパーミッションを 8 進数 (755 等) ↔ シンボリック (rwxr-xr-x) ↔ ugo 表記 (u=rwx,g=rx,o=rx) で相互変換します。 チェックボックスで r/w/x を切り替えると 3 表記が同時に更新され、 setuid / setgid / sticky の特殊ビットにも対応します。

「755 ってどういう意味だっけ?」 「シンボリックの rwsr-xr-xs は何?」 を毎回ググるのをやめたい人向け。 chmod コマンドのコピペ用フォーマット (8 進形式・ugo 形式) もターミナル風表示で出るので、 そのまま貼り付けて使えます。

基本: 各桁は 4 (r) + 2 (w) + 1 (x) の合計

8 進パーミッションの各桁は、 read (4) + write (2) + execute (1) の合算です。 桁順は左から「特殊ビット → 所有者 → グループ → その他」。

  • 755 = rwxr-xr-x ― 実行ファイル・ディレクトリの標準
  • 644 = rw-r--r-- ― テキスト・設定ファイルの標準
  • 600 = rw------- ― SSH 秘密鍵 (~/.ssh/id_rsa)・.env
  • 700 = rwx------~/.ssh ディレクトリ自身
  • 777 = rwxrwxrwx ― 誰でも全権限 (本番では NG)

特殊ビット ― 4 桁目の setuid / setgid / sticky

4 桁の 8 進数 (例: 4755) の先頭は特殊ビットです。 これも 4 + 2 + 1 の合算:

  • setuid (4): 実行時のプロセス権限が「実行者ではなくファイル所有者」 になる。 例: /usr/bin/passwd (4755)
  • setgid (2): dir に付けると「中に作るファイルが親dir のグループを継承」 (共有リポジトリで便利)
  • sticky (1): dir で「自分が作ったファイルしか削除できない」。 例: /tmp (1777)

setuid は強力ですが現代では脆弱性リスクから極力避けるべきとされ、 Linux capabilities や sudo / polkit による代替が推奨されます。 詳しくは 「chmod 755 / 644 / 600 完全ガイド」 記事へ。

よくある事故 ― SSH が秘密鍵を弾く

OpenSSH は秘密鍵の group / other に少しでも権限があると起動時にエラーで止まります:

Permissions 0644 for '/home/user/.ssh/id_rsa' are too open.

対処: chmod 600 ~/.ssh/id_rsa (より厳しく 400 でも可)。 ~/.ssh ディレクトリ自体も 700 が必要です。 これはシェル機能ではなく ssh(1) のセキュリティ要件。 「必要最小限の権限」 = 最小権限の原則を意識すれば、 多くの事故は未然に防げます。

よくある質問

Q. 755 と 644 はどう使い分ければよい?
755 (rwxr-xr-x) は実行可能なもの ― シェルスクリプト、 ディレクトリ、 バイナリ。 644 (rw-r--r--) は実行しないもの ― テキスト、 HTML、 画像、 設定ファイル。 ディレクトリには必ず x を付けないと中に入れません (cd できなくなります)。
Q. なぜ /tmp は 1777 なのですか?
/tmp は誰でも書ける共有領域なので 777 が必要ですが、 それだけだとユーザー A が作ったファイルをユーザー B が削除できてしまいます (dir の w 権限は中のファイル削除を許可する)。 そこで sticky ビット (1) を足して、 「自分が作ったファイルしか消せない」 制限を加える。 これが 1777 = rwxrwxrwt の意味です。
Q. chmod -R で再帰的に変えるとき注意点は?
ディレクトリとファイルに同じパーミッションを掛けると問題が出ます。 例: ファイルに 755 を掛けると全ファイルが実行可能になり危険。 シンボリックの <code>X</code> (大文字) を使うと「他に x が立っているもの (= dir または元から実行可能なファイル) だけに x を追加」 という挙動になるので、 <code>chmod -R u+rwX,go+rX path</code> のように書くと安全です。
Q. シンボリックの s と t は何?
x の位置の <code>s</code> は setuid (u 桁) または setgid (g 桁)、 <code>t</code> は sticky (o 桁) です。 大文字 (S / T) は「特殊ビットは立っているが x は立っていない」 という稀なケース。 本ツールでチェックボックスを操作すると即座にシンボリック表示が更新されるので、 各パターンを試してみてください。
このツールを評価
(0件)