chmodコマンドの使い方:ファイルのパーミッションを変更する

chmodは、ファイルやディレクトリのパーミッション(アクセス権限)を変更するコマンドです。「Permission denied」と表示されたときの対処や、スクリプトに実行権限を付ける場面で使います。

chmodのよく使う形

実務や学習で登場しやすい使い方を、そのまま入力できる形でまとめました。

コマンド例内容
chmod 755 script.sh所有者は読み書き実行、他は読み実行のみ
chmod 644 file.txt所有者は読み書き、他は読み取りのみ
chmod +x script.sh実行権限を追加
chmod u+w file.txt所有者(user)に書き込み権限を追加
chmod go-w file.txtグループとその他から書き込み権限を外す
chmod -R 755 dir/ディレクトリ配下をまとめて変更

chmodの主なオプション

オプション意味
数値指定(例 755)
記号指定(例 u+x・g-w・o=r)
-R再帰的に変更
-v変更内容を表示
特殊ビット(4000 SUID・2000 SGID・1000 スティッキー)

chmodの実行例と結果の読み方

user@linux-study:~$ chmod 755 deploy.sh
user@linux-study:~$ ls -l deploy.sh
-rwxr-xr-x 1 user user 512 Jan 10 09:30 deploy.sh

chmod 755で、所有者に読み書き実行(7)、グループとその他に読み取り実行(5)の権限を設定しています。ls -lの出力の-rwxr-xr-xという部分でこの権限が確認できます。

練習用ターミナルでは、chmodをブラウザ上で安全に試せます。

chmodを使うときの注意点

数字は、読み取り=4、書き込み=2、実行=1を足した値を、所有者・グループ・その他の順に並べたものです。たとえば7は4+2+1で全権限、5は4+1で読み取りと実行です。

chmod 777は誰でも読み書き実行できる状態になり、セキュリティ上のリスクが大きいため、一時的な切り分け以外では避けるのが基本です。ディレクトリでは「実行」権限が、中へ入る(cdする)権限を意味します。

-Rで再帰的に変更すると、ファイルとディレクトリに同じ権限が付きます。両者を分けたいときは、findと組み合わせます。

chmodに関するよくある質問

スクリプトが実行できないときは?

ls -lで実行権限(x)があるか確認し、無ければchmod +xで追加します。

権限を数字ではなく記号で書くには?

u(所有者)、g(グループ)、o(その他)、a(全員)に、+・-・=でr・w・xを指定します。

関連ページ

あわせて覚えたいコマンド:chown・ls・sudo・find

chmodが登場する章:初級 第6章・中級 第11章

← Linuxコマンド一覧へ戻る