【チェンジモード】

chmod とは?

💡 ファイルの鍵を付け替える、アクセス権限の管理人
📌 このページのポイント
chmod — ファイルの権限(パーミッション)を変更 chmod 755 file.sh 所有者(u) = 7 r 4 w 2 x 1 4+2+1 = 7 グループ(g) = 5 r 4 - 0 x 1 4+0+1 = 5 その他(o) = 5 r 4 - 0 x 1 4+0+1 = 5 権限の意味 r (read) = 読み取り w (write) = 書き込み x (exec) = 実行 777 = 全権限(危険!) / 644 = 一般ファイル / 755 = 実行ファイル
chmodのイメージ
ひよこ ひよこ

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は「全員が読み書き実行できる」という意味で、セキュリティ上とても危険なんだ。特にWebサーバー上でやると、悪意のあるユーザーがファイルを書き換えられてしまうよ。「動かないから777にしちゃえ」は初心者がやりがちだけど、原因を特定して最小限の権限を付けるのが正しいやり方だね

ひよこ ひよこ

ディレクトリの実行権限って何なの?ディレクトリを「実行」するって不思議だね!

ペンギン先生 ペンギン先生

いい質問だね!ディレクトリの実行権限は「そのディレクトリの中に入れるかどうか」を意味するんだ。読み取り権限があっても実行権限がないとcdで移動できないし、中のファイルにもアクセスできない。逆に実行権限だけあって読み取り権限がないと、ファイル名を知っていればアクセスできるけどlsで一覧は見られない、という面白い状態になるんだよ

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