Linux chmodコマンド完全ガイド|使い方・オプション・実例まとめ

この記事は約4分で読めます。
スポンサーリンク

Linuxのchmodコマンドは、ファイルやディレクトリのアクセス権限(パーミッション)を変更するための基本かつ重要なコマンドです。すべてのLinuxユーザー・管理者が正確に理解することで、セキュリティと運用効率の大幅な向上につながります。

chmodコマンドの基礎

基本概念と役割

  • chmodは「change mode」の略で、ファイル/ディレクトリのパーミッション設定・変更を行います。
  • 対象は「所有者(u)」「グループ(g)」「その他(o)」「全体(a)」の4区分。
  • 各区分ごとに「読み取り(r)」「書き込み(w)」「実行(x)」の3種類の権限を設定できます。

各権限の意味

権限記号ファイルディレクトリ
r読みファイル内容の表示ディレクトリ一覧の表示
w書きファイル内容の変更・削除ディレクトリ内の変更・新規作成
x実行プログラム実行などcdコマンドで移動が可能

chmodの指定方法(数値/記号)

数値(オクタル)指定

  • 形式:chmod 755 ファイル名
  • 数値は r=4w=2x=1 の合算。
  • 左から「所有者」「グループ」「その他」の順。
数値権限権限内容
777rwxrwxrwxすべてのユーザーに全権限
755rwxr-xr-x所有者:全権限、他は読み・実行のみ
644rw-r–r–所有者:読み書き、他は読みのみ

chmod 644 myfile.txt   # 所有者はrw、他はrのみ
chmod 700 secret.txt   # 所有者だけが全権限
chmod 755 script.sh    # 所有者は全権限、他は実行と読み

記号(シンボリック)指定

  • 形式:chmod [対象][演算子][権限] ファイル名
  • [対象]:u(所有者)/g(グループ)/o(その他)/a(全員)
  • [演算子]:+(付加)/−(削除)/=(上書き)
  • [権限]:r/w/x

chmod u+x script.sh    # 所有者に実行権
chmod go-w data.log    # グループ・その他の書き込み権を削除
chmod a=r public.txt   # 全員「読み込みのみ」

主なオプション一覧

オプション内容使用例
-Rディレクトリ配下も再帰的に権限変更chmod -R 755 /home/www/
-v権限変更を詳細に表示chmod -v 600 *.txt
-c権限変更が生じた場合のみ出力chmod -c g+w foo.txt
–helpコマンドヘルプを表示chmod –help

chmodを使いこなすテクニック

特殊権限

  • SUID(Set User ID): 実行時に所有者権限
    • chmod 4755 file
  • SGID(Set Group ID): グループ権限を付与+ディレクトリ配下のグループ継承
    • chmod 2755 dir
  • スティッキービット: ディレクトリ内ファイルの削除権限制限
    • chmod 1755 /tmp

findやxargsとの組み合わせ例

find . -name "*.sh" -exec chmod +x {} \;     # シェルスクリプトを実行可能に一括変更
find . -type d -exec chmod 755 {} \;         # ディレクトリのみ権限修正
find . -type f -exec chmod 640 {} \;         # ファイルのみ一括修正
find . -perm 777 | xargs chmod 755           # 権限777を検出して755に修正

パーミッションの確認

  • ls -l:権限状態を一覧確認
  • 出力例:-rw-r--r-- 1 user group 1234 日付 ファイル名

よく使うchmodコマンド早見表

コマンド例用途
chmod 755 file実行ファイルや公開ディレクトリへの標準設定
chmod 644 fileテキストファイルなど(所有者書き込み可能)
chmod +x fileファイルを実行可能に
chmod -R 700 dir/機密ディレクトリを再帰で管理
chmod g+w fileグループへの書き込み権付与
chmod o-r secretその他ユーザーからの読み取りを禁止

セキュリティ上の注意点

  • 最小権限の原則:必要最小限の権限のみ付与
  • 権限の定期チェック:とくに777のパーミッションは不用意に使わない
  • 秘密ファイル/ディレクトリは600・700指定を推奨

まとめ

chmodコマンドを正しく使い分けることで、Linuxシステムの安全性・管理性が大きく向上します。慣れないうちはls -lchmod --helpで都度確認しつつ、まずは基本的な数値モード・記号モードから実践しましょう。

コメント

タイトルとURLをコピーしました