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特殊ビット仕様を確認してください。
よくある質問
chmodとは?
Unix系OSでファイルやディレクトリのfile mode、access permissionを変更するコマンドです。
chmod 755とは?
Owner=rwx=7、Group=r-x=5、Others=r-x=5なので、権限文字列はrwxr-xr-xです。
chmod 644とは?
Owner=rw-=6、GroupとOthers=r--=4なので、rw-r--r--です。
数字の4・2・1は何ですか?
read=4、write=2、execute/search=1を足し、各クラスの8進数1桁を作ります。
777は危険ですか?
全クラスへread・write・executeを許可する広い権限です。適切さは用途、ownership、ACL、環境等で変わるため、意味と必要性を確認してください。
4桁の4755や1777は何ですか?
先頭桁はsetuid=4、setgid=2、sticky bit=1の組み合わせです。残り3桁が通常権限です。
sとS、tとTの違いは?
特殊ビットと対応するexecuteが両方ONなら小文字sまたはt、executeがOFFなら大文字SまたはTです。
ディレクトリのxは何ですか?
ディレクトリでは内容へのsearch/accessに関係するpermissionです。
chmod 755で特殊ビットも必ず消えますか?
必ずとは限りません。OS・実装・対象により差があり、GNU環境ではディレクトリのsetuid・setgidが通常numeric modeで保持される場合があります。
入力内容は送信されますか?
送信・保存されません。計算はブラウザ内で行い、Cookie・localStorage・sessionStorage・IndexedDB・URLへ入力値を保存しません。