chmodコマンドとUnixパーミッションの完全ガイド — 755・644・777の意味
chmodはLinux/macOSのファイルパーミッションを変更するコマンドです。755や644などの数値(octal記法)はファイルの読み書き実行権限を8進数で表したものです。Webサーバーやスクリプトの実行時にパーミッションエラーが起きた際の理解が重要です。
rwxとoctal記法の対応
Unixのパーミッションはowner(所有者)・group(グループ)・others(その他)の3グループに対してr(read=4)・w(write=2)・x(execute=1)の権限を設定します。755はowner=7(rwx)・group=5(r-x)・others=5(r-x)を意味します。644はowner=6(rw-)・group=4(r--)・others=4(r--)です。
代表的なパーミッション値の意味
755は実行可能なファイルやディレクトリの標準設定で、所有者は全操作可・グループ/その他は読み実行のみです。644はHTMLやCSSなどのWebファイルに多く、所有者は読み書き・グループ/その他は読みのみです。777は全員が全権限を持つ設定で、セキュリティリスクがあり通常は使いません。600はSSH秘密鍵のように所有者のみがアクセスできる設定です。
setuid・setgid・sticky bitとは
setuid(4000)はそのファイルをファイル所有者権限で実行します(/usr/bin/passwdなどで使用)。setgid(2000)はそのファイルをグループ権限で実行します。sticky bit(1000)はディレクトリに設定すると、ファイルの削除を所有者のみに制限します(/tmpディレクトリで使用)。Chmod Calculatorでこれらの特殊ビットの設定もGUIで確認できます。
chmodコマンドの使い方
chmod 755 script.sh でscript.shのパーミッションを755に設定します。chmod -R 755 directory/ でdirectoryとその中身を再帰的に変更します。シンボリック記法ではchmod u+x file(所有者に実行権付与)・chmod go-w file(グループ・その他の書き込み権削除)のように使えます。Chmod Calculatorでチェックボックスを操作するとchmodコマンドが自動生成されます。