【チェンジモード】

chmod とは?

最終更新:
💡 ファイルの鍵を付け替える、アクセス権限の管理人

ファイルやディレクトリのアクセス権限(パーミッション)を変更するコマンド。誰が読み書き実行できるかを細かく制御できる。

📌 このページのポイント
chmod 755:3桁で権限を指定chmod 755 script.sh所有者7rwxグループ5r-xその他5r-xr 読む=4 w 書く=2 x 実行=1フォルダーのxは、中の項目をたどる権限
755では所有者が読み書き実行でき、グループとその他は読み取り・実行ができます。対象はOS上のユーザーやプロセスです。
ひよこ ひよこ
chmodって何を変えるコマンドなの?
ペンギン先生 ペンギン先生
ファイルの「誰が何をできるか」を変えるコマンドだよ。たとえば「このファイルは自分だけ読み書きできて、他の人は読むだけ」みたいな設定ができるんだ。家の部屋に鍵をかけたり外したりするイメージだね
ひよこ ひよこ
755とか644とかの数字をよく見かけるけど、あれは何なの?
ペンギン先生 ペンギン先生
あれは権限を8進数で表したものだよ。各桁が「所有者・グループ・その他」に対応していて、読み取り=4、書き込み=2、実行=1の合計で表すんだ。755なら「所有者は全部OK(7=4+2+1)、グループとその他は読み取りと実行だけ(5=4+1)」という意味だね
ひよこ ひよこ
シンボルモードっていうのもあるって聞いたけど?
ペンギン先生 ペンギン先生
chmod u+x script.sh みたいに書く方法だね。uが所有者、gがグループ、oがその他、aが全員を表すよ。+で権限追加、-で権限削除。数字より直感的で、「実行権限だけ追加したい」みたいなときに便利なんだ
ひよこ ひよこ
chmod 777 はやっちゃダメって聞いたことがあるけど、なぜなの?
ペンギン先生 ペンギン先生
777は、所有者・グループ・その他のすべてに読み書き実行の権限を与える指定だよ。不要な書き込み権限は変更を許す相手を増やしてしまうので、「動かないから777」は避けよう。ここでいう相手はOS上のユーザーやプロセスで、Webの訪問者全員に直接権限を渡すという意味ではないんだ。
ひよこ ひよこ
ディレクトリの実行権限って何なの?ディレクトリを「実行」するって不思議だね!
ペンギン先生 ペンギン先生
ディレクトリのxは、中の項目へたどるための「検索」の権限だよ。rは名前の一覧を読む権限で、wとxがあれば項目を追加・削除できるのが基本なんだ。中のファイルを読むには、そのファイル自身の権限も必要だよ。
もっと詳しく知りたい人へ

chmodは所有者も変更できる?

所有者を変更するのはchownで、chmodは権限を変更するコマンドだよ。Linuxでchmodを行うには、基本的にそのファイルの所有者か、必要な特権があることが条件になるんだ。

書き込み禁止のファイルでも、削除できることがある?

あるよ。ファイル自身のwは内容を書き換える権限で、削除は親ディレクトリ内の項目を取り除く操作だから、親ディレクトリの権限も関係するんだ。共有ディレクトリのsticky bitなどによる削除制限もあるので、ファイルの数字だけでは判断しないようにしよう。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「chmod」って出てきたら「ファイルやフォルダーのアクセス権限を変えるコマンド」と思えばだいたいOK!
📖 おまけ:英語の意味
「change mode」 = モード(権限)を変更する
💬 「change(変更する)」+「mode(モード=権限の状態)」の略だよ。Unix系OSでは権限のことを「ファイルモード」と呼ぶんだ

参考資料

← 用語集にもどる