そもそもパーミッションとは?
Linuxのすべてのファイルとフォルダには、「読む(read)」「書く(write)」「実行する(execute)」の3つの権限が設定されています。さらに、その権限を「所有者」「グループ」「その他のユーザー」の3種類に対して別々に決められます。
例えば日記ファイルなら「自分は読み書きできるが、他の人は何もできない」、Webサイトの公開フォルダなら「自分は変更できて、他の人は閲覧だけできる」のように細かくコントロールします。これが、Linuxがサーバーに選ばれる理由のひとつです。複数人で同じマシンを使っても、安全に住み分けができます。
パーミッションの読み方
ls -lを打つと、各ファイルの先頭に-rwxr-xr--のような10文字が表示されます。最初の1文字はファイル種別(-はファイル、dはフォルダ)、残り9文字を3文字ずつ「所有者・グループ・その他」と読みます。rが読み、wが書き、xが実行です。
数字で表す方法もあり、r=4・w=2・x=1を足して使います。rwx=7、r-x=5、r--=4。実務では「755」「644」のような数字で覚えることが多いです。
権限を変えるchmodとchown
権限を変更するコマンドはchmod(change mode)です。chmod 755 script.shでscript.shに「所有者は読み書き実行、それ以外は読み実行」を設定。所有者を変えるchownもありますが、これは管理者権限(sudo)が必要です。
WebサーバーでHTMLファイルを公開するとき、フォルダは「755」、ファイルは「644」が定番のセットです。これだけ覚えておけば、自分のWebサイトが「Forbidden」エラーになる問題の半分は解決できます。
数字だけを丸暗記するより、「誰に何を許すか」で考えると間違いにくくなります。自分だけが編集するファイルは他人に書き込み権限を渡さない。実行する必要のないHTMLや画像には実行権限を付けない。サーバーに置くファイルは、必要最小限の権限にする。この考え方が基本です。
何に使われている?
おすすめの使い方
自分のスクリプトを実行するときに「Permission denied」エラーが出たら、chmod +x ファイル名で実行権限を付ける、と覚えておきましょう。これだけでPython・Bashスクリプト・自作コマンドが動かせるようになります。GitHubから落としてきたツールも、最初は実行権限がついていないことが多いので、この一手間で解決できます。
練習するときは、専用フォルダを作り、空のテキストファイルで試しましょう。ls -l で現在の権限を見て、chmod で変え、もう一度 ls -l で結果を確認します。大切なフォルダやシステムファイルに対して、意味が分からないまま sudo chmod を使うのは避けてください。
気をつけたい落とし穴
chmod 777は「誰でも自由に変更可能」で最も危険な設定です。サーバー上では使わない- SSH鍵ファイル(id_rsa)は600以外だと使えません。644だと「権限が緩すぎる」と拒否されます
- Webサーバーの公開フォルダの権限を緩めすぎると、攻撃者にファイルを書き換えられる可能性があります
将来どう役立つ?
パーミッション設定は、サーバーセキュリティの基本中の基本です。Web開発・インフラ運用・クラウドエンジニアの仕事で、毎日のように扱う知識です。「権限」という考え方はAWS・Google Cloudなどのクラウド権限管理(IAM)にも共通しているので、ここで身につけた感覚が将来の幅広い場面で活きます。
権限の考え方を理解すると、「なぜ管理者権限が必要なのか」「なぜ共有フォルダで他人のファイルを消せないのか」「なぜ公開サーバーで書き込み権限を絞るのか」が分かります。これはLinuxだけでなく、学校や会社のシステムを安全に使うための基礎リテラシーです。
今日からできること
- ターミナルで
ls -lを実行し、ファイル一覧の左端の権限表記を眺める touch test.shでファイルを作り、chmod 755 test.shで権限を変えてls -lで確認する- 数字表記(644・755・600・700)の意味を紙に書き出して暗記する
まとめ
確認 パーミッションが表すのは?