chmod計算機(パーミッション計算)
チェックボックスを操作するか、8進数(例: 755)を直接入力してください。もう一方に即座に反映されます。
| 読み取り (r=4) | 書き込み (w=2) | 実行 (x=1) | |
|---|---|---|---|
| 所有者 (u) | |||
| グループ (g) | |||
| その他 (o) |
特殊ビット(setuid / setgid / sticky)
結果
| コマンド(クリックでコピー) |
|---|
よく使うパーミッション早見表
| 8進数 | 記号表記 | 主な用途 |
|---|---|---|
| 644 | rw-r--r-- | 一般的なファイル(HTML、設定ファイルなど) |
| 755 | rwxr-xr-x | ディレクトリ、実行スクリプト |
| 700 | rwx------ | 所有者だけが使うディレクトリ(~/.ssh など) |
| 600 | rw------- | 秘密にすべきファイル(秘密鍵、パスワード入りの設定) |
| 400 | r-------- | 読み取り専用の秘密ファイル(SSH秘密鍵 .pem など) |
| 777 | rwxrwxrwx | 誰でも何でもできる状態。本番環境では原則使わない |
パーミッションの読み方
ls -l で表示される rwxr-xr-x は、3文字ずつ「所有者」「グループ」「その他」の権限を表します。r=読み取り(4)、w=書き込み(2)、x=実行(1)の合計が8進数の各桁になります。例えば rwx は 4+2+1=7、r-x は 4+1=5 なので、rwxr-xr-x は 755 です。
ハマりやすいポイント
ディレクトリの「実行(x)」は「中に入れるか」。 ディレクトリではxの意味が変わり、「cd できるか・中のファイルにアクセスできるか」を表します。ディレクトリからxを外すと、中のファイルのパーミッションに関係なくアクセスできなくなります。ディレクトリに755、ファイルに644が定番なのはこのためです。
SSH秘密鍵は600または400でないと拒否される。 パーミッションが緩い秘密鍵はsshコマンドが「UNPROTECTED PRIVATE KEY FILE!」エラーで使用を拒否します。chmod 600 ~/.ssh/id_ed25519 が定石です。
「動かないからとりあえず777」は危険。 777は誰でも書き換え・実行できる状態で、Webサーバー上では改ざんの入り口になります。動かない原因はパーミッションではなく、所有者(chown)やSELinuxなど別の場所にあることが多く、まず ls -l と実行ユーザーの確認から始めるのが正しい手順です。
よくある質問
Q. setuid・setgid・stickyとは?
A. 特殊な権限ビットです。setuid付きの実行ファイルは「所有者の権限」で動きます(例: passwdコマンド)。stickyビット付きディレクトリ(例: /tmp の1777)では、自分のファイルしか削除できなくなります。該当する場合は8進数が4桁(例: 4755)になります。
Q. 数字を使わずに権限を変えられる?
A. chmod u+x script.sh(所有者に実行権を追加)のような記号指定もできます。「今の権限から一部だけ変えたい」ときは記号指定の方が安全です。
Q. Windowsには同じ仕組みがある?
A. WindowsはACLという別の仕組みで権限管理します。icacls コマンドが近い役割です。当サイトのLinux ⇄ PowerShell コマンド対訳表も参考にしてください。