chmod計算ツールとは?
chmod計算ツールは、Unix/Linuxのファイルパーミッションを、chmodコマンドで使う数値(8進数)表記に変換し、あわせてrwxrwxrwx形式の記号表記も生成します。Unix系システムでは、すべてのファイルに「所有者(owner)」「グループ(group)」「その他(other)」という3つのパーミッショングループがあり、それぞれに対して読み取り・書き込み・実行の許可を設定できます。本ツールはPOSIX準拠のあらゆる環境(Linux、macOS、BSDなど)で共通して利用できます。
使い方
各行で、許可したいパーミッションのチェックボックスにチェックを入れてください。「所有者」の行はファイルの作成者、「グループ」の行はファイルが属するグループのメンバー、「その他」の行はそれ以外のすべてのユーザーを対象とします。チェックを入れると、chmod 755 fileのようなコマンドにそのまま貼り付けられる3桁の8進数モードと、読みやすい記号表記が即座に表示されます。
計算の仕組み
各パーミッションには次の値が割り当てられています。読み取り(read)=4、書き込み(write)=2、実行(execute)=1。各グループごとに、許可したパーミッションの値を合計すると、0〜7の1桁の数字になります。
$$\text{桁の値} = 4\cdot\text{r} + 2\cdot\text{w} + 1\cdot\text{x}$$
こうして求めた3つの数字を「所有者 → グループ → その他」の順に並べると、最終的なモードが完成します。
具体例
たとえば、所有者が読み取り・書き込み・実行すべて可能(\(4+2+1 = 7\))、グループが読み取りと実行(\(4+0+1 = 5\))、その他も読み取りと実行(\(4+0+1 = 5\))の場合、結果は755、記号表記ではrwxr-xr-xになります。これは実行可能なスクリプトやディレクトリでよく使われる定番のモードです。
よくある質問
644はどういう意味ですか? 所有者が読み取り+書き込み(6)、グループが読み取り(4)、その他が読み取り(4)という設定です。ドキュメントなど実行を必要としないファイルでよく使われるモードです。
777はどういう意味ですか? すべてのユーザーが読み取り・書き込み・実行をできる状態です。手軽ですがセキュリティ上は危険なため、通常は避けるべきとされています。
なぜディレクトリには実行権限が必要なのですか? ディレクトリの場合、実行ビットはそのディレクトリに入って中のファイルへアクセスするための権限を意味します。そのため、読み取りを許可する場合はあわせて実行も許可するのが一般的です。