chmodの数値とrwxをブラウザで照合する
Owner・Group・Otherと特殊Bitを選び、8進数、rwx、数値chmodコマンドをブラウザ内だけで確認できます。
rwxをchmod数値へ変換する結論:rwxr-xr-xは755、rw-r--r--は644
Owner、Group、Otherを3文字ずつ独立して計算します。
-rwxr-xr-xの先頭-やdrwxr-xr-xの先頭dはEntry Typeであり、755の桁ではありません。
権限を広げる前に、誰が、どのPathへ、どの操作を必要としているかを確認してください。
3文字ごとに4・2・1を合計する
rwxは4+2+1=7、r-xは4+0+1=5、r--は4です。欠けているPermissionは0として足します。
現行ツールが受け付ける10文字表記のPrefixは-とdです。lやc等のFile Typeは自動解析しないため、Permission部分9文字を入力します。
| 確認対象 | 確認内容 | 判断 |
|---|---|---|
| rwx | 4+2+1 | 7 |
| rw- | 4+2+0 | 6 |
| r-x | 4+0+1 | 5 |
| r-- | 4+0+0 | 4 |
chmodパーミッション計算ツールで確認する手順
- 記号形式欄へrwxr-xr-xを入力します。
- Owner・Group・OtherのCheckboxを確認します。
- 8進数Outputが755か確認します。
- File Typeが必要なら対象を切り替えます。
u+x等の差分Operationではなく、最終的な9文字または10文字のPermission表記を入力します。
ls -l表示を分解する
| 表示 | Type | Permission | Octal |
|---|---|---|---|
| -rwxr-xr-x | File | rwx r-x r-x | 755 |
| drwxr-xr-x | Directory | rwx r-x r-x | 755 |
| -rw-r--r-- | File | rw- r-- r-- | 644 |
| -rw------- | File | rw- --- --- | 600 |
Owner・Group・Otherと4・2・1を分けて読む
Permissionの3桁は左からOwner、Group、Otherです。各桁は10進数ではなく8進数で、read=4、write=2、execute/search=1を足します。7はrwx、6はrw-、5はr-x、4はr--です。ls -lの先頭1文字はFile Typeなので、-rw-r--r--の先頭-を数値へ含めません。
| 値 | 記号 | 権限 |
|---|---|---|
| 0 | --- | なし |
| 1 | --x | execute / search |
| 2 | -w- | write |
| 3 | -wx | write + execute |
| 4 | r-- | read |
| 5 | r-x | read + execute |
| 6 | rw- | read + write |
| 7 | rwx | read + write + execute |
通常Fileのxは実行、Directoryのxは名前を指定して配下へ到達するsearch権限です。Directoryではrだけで一覧名が見えても、xがなければcdや配下EntryへのAccessに失敗します。chmodだけで解決しない場合はOwner・Group、親Directory、ACL、SELinux・AppArmor、Mount Option、Applicationの実行Userも確認します。
期待どおりに動かない場合の切り分け
変換結果がずれる場合は、先頭Type文字をOwnerのrとして数えていないか、9文字をずらして区切っていないか確認します。
対象EntryのModeだけでなく、whoami・id・ls -ldで実行User、Group、親Directoryを確認します。sudoで症状が消えるだけなら、777へ広げずOwnershipやService Userを見直します。ACL、SELinux、AppArmor、Read-only Mount、noexec、Interpreter、Line Endingも別要因です。
- 文字数を9または10で確認
- 3文字ずつ区切る
- s/S/t/Tを特殊Bitとして扱う
- l等はPermission部分だけ入力
現行のchmodパーミッション計算ツールで確認できる範囲
DevelopToolsの現行ツールは、000~7777の3桁・4桁8進数、rwxr-xr-xの9文字表記、先頭が-またはdのls -l風10文字表記を相互変換します。Owner・Group・Otherのr/w/x、Setuid・Setgid・Sticky bitをチェックボックスでも指定でき、8進数、記号表記、数値Modeのchmodコマンド、説明、安全上の注意を表示します。入力はブラウザ内だけで処理され、サーバーへ送信されません。
| 機能 | 現行ツールの動作 |
|---|---|
| 入力 | 644・0755・4755等のOctal、rwxr-xr-x、-rw-r--r--、drwxr-xr-x、Checkbox |
| 特殊Bit | Setuid=4、Setgid=2、Sticky=1と、実行Bitに応じたs/S/t/T表示 |
| 対象 | 通常FileまたはDirectoryを選択し、表示Prefixを-またはdへ切替 |
| 出力 | Octal、Symbolic Permission、chmod数値Command、権限説明、Security Warning |
| 補助 | Preset、Copy、Reset、再帰適用のWarning、秘密鍵・777等の注意 |
| 未実装 | u+x・g-w・X等のSymbolic Operation、umask計算、Binary表示、l等のFile Type、ACL・SELinux判定、実File操作 |
未実装項目を扱う記事では、GNU chmodやGitのCommand例と判断手順を説明します。ツールでは候補となる最終Modeを数値またはrwxで確認しますが、現在Modeを読み取った差分演算、File System操作、Command実行は行いません。
GNU・POSIX・Git公式資料で最終確認する
数値Mode、Symbolic Mode、再帰処理、Symbolic Linkの扱いはOSや実装差を含むため、実行環境のman chmodと公式資料を確認します。特に-RとSymlinkの組み合わせ、Setuid・Setgidの保持、Xの条件、umaskの影響を暗記だけで判断しません。
具体例:-rw-r-----を640へ変換する
先頭-を除き、rw- / r-- / ---へ分けます。
6 / 4 / 0なので640です。
- Typeを除く
- 3 Groupへ分割
- 各桁を加算
- Toolで640確認
Octalは文字列として先頭0を伴う0755表記になることもあります。
よくある質問
- chmod 755は何を意味しますか?
- Ownerがrwx、GroupとOtherがr-xです。通常Fileなら所有者が読み書き・実行でき、ほかは読み取り・実行できます。Directoryではxがsearch権限として働きます。
- Permission deniedなら777にすれば直りますか?
- 権限不足だけが原因なら変化する可能性はありますが、全員へwriteとexecuteを与えるため一般的な解決策にはできません。Owner・Group・親Directory・必要な操作を特定してください。
- chmodとchownは何が違いますか?
- chmodはMode Bit、chownはOwnerやGroupを変更します。Modeが正しくても実行Userが想定したOwner・GroupでなければAccessできないことがあります。
- ツールが表示したchmodコマンドをそのまま実行してよいですか?
- 対象Path、現在Mode、Owner・Group、File種別、配下の範囲を端末で確認してから使用してください。ツールは実FileやOSのAccess Controlを検査しません。