chmod計算機(パーミッション計算)

チェックボックスを操作するか、8進数(例: 755)を直接入力してください。もう一方に即座に反映されます。

読み取り (r=4)書き込み (w=2)実行 (x=1)
所有者 (u)
グループ (g)
その他 (o)
特殊ビット(setuid / setgid / sticky)

結果

コマンド(クリックでコピー)

よく使うパーミッション早見表

8進数記号表記主な用途
644rw-r--r--一般的なファイル(HTML、設定ファイルなど)
755rwxr-xr-xディレクトリ、実行スクリプト
700rwx------所有者だけが使うディレクトリ(~/.ssh など)
600rw-------秘密にすべきファイル(秘密鍵、パスワード入りの設定)
400r--------読み取り専用の秘密ファイル(SSH秘密鍵 .pem など)
777rwxrwxrwx誰でも何でもできる状態。本番環境では原則使わない

パーミッションの読み方

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-x755 です。

ハマりやすいポイント

ディレクトリの「実行(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 コマンド対訳表も参考にしてください。