chmodと8進数の権限
chmodはUnix系OSでfile modeを変更するコマンドです。Owner・Group・Othersごとにread=4、write=2、execute/search=1を加算し、3つの8進数桁を作ります。数値モードのbit配置はGNU Coreutils Numeric Modesを基準にしています。
数値からrwxへの対応
| 数値 | rwx | 組み合わせ |
|---|---|---|
| 0 | --- | なし |
| 1 | --x | execute/search |
| 2 | -w- | write |
| 3 | -wx | write + execute/search |
| 4 | r-- | read |
| 5 | r-x | read + execute/search |
| 6 | rw- | read + write |
| 7 | rwx | すべて |
通常ファイルとディレクトリのx
通常ファイルのxは実行permissionです。ディレクトリでは内容へ到達するためのsearch/access permissionとして機能し、ディレクトリ自体を実行する意味ではありません。
特殊ビットを実システムへ適用するときの注意
本ツールはmode bitの組み合わせを計算します。実際の適用結果はOS、filesystem、対象、権限等で差があり得ます。GNU Coreutilsではディレクトリへ4桁以下の通常numeric modeを指定した場合、既存のsetuid・setgidを保持することがあります。詳細はGNU Coreutilsのdirectory特殊ビット仕様を確認してください。
よくある質問
sとS、tとTの違いは?
特殊ビットと対応するexecuteが両方ONなら小文字sまたはt、executeがOFFなら大文字SまたはTです。