ファイル操作とパーミッションの基本

Linuxのファイルには、「誰が・何を・どこまでできるか」を決める許可情報(パーミッション)がついています。WindowsやMacにも似た仕組みはありますが、Linuxはこれをコマンドで細かく操作できるのが特徴です。この記事では、ファイル操作と権限の読み方・変え方をまとめます。

そもそもパーミッションとは?

Linuxのすべてのファイルとフォルダには、「読む(read)」「書く(write)」「実行する(execute)」の3つの権限が設定されています。さらに、その権限を「所有者」「グループ」「その他のユーザー」の3種類に対して別々に決められます。

例えば日記ファイルなら「自分は読み書きできるが、他の人は何もできない」、Webサイトの公開フォルダなら「自分は変更できて、他の人は閲覧だけできる」のように細かくコントロールします。これが、Linuxがサーバーに選ばれる理由のひとつです。複数人で同じマシンを使っても、安全に住み分けができます。

パーミッションの読み方

rwx記法と数字(8進数)の対応表 r=4・w=2・x=1の合計が数字。rwx=7、r-x=5、r--=4が頻出 記号表記 数字 意味 rwx rwx 7(4+2+1) 読み・書き・実行すべて r-x r-x 5(4+1) 読みと実行のみ r-- r-- 4 読み取りのみ rw- rw- 6(4+2) 読み書き(実行不可) --- --- 0 何もできない 3桁=所有者・グループ・その他の順 例: 7 5 5 = 所有者rwx・グループr-x・その他r-x(公開Webファイル定番)
図1:8進数3桁が9ビット権限を表す。「755」「644」を覚えれば実務の8割をカバー

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や画像には実行権限を付けない。サーバーに置くファイルは、必要最小限の権限にする。この考え方が基本です。

何に使われている?

頻出パーミッションパターン(用途と危険度) この5つを覚えれば実務の9割。とくに777だけは危険なので絶対に避ける 755 rwxr-xr-x 公開Webファイル・実行可能スクリプト 所有者は変更可・誰でも閲覧と実行ができる。WebサイトのHTMLや bin スクリプトの定番 644 rw-r--r-- 通常のドキュメント・テキストファイル 所有者は読み書き、それ以外は閲覧のみ。HTML・PDF・ログの標準 700 rwx------ プライベートディレクトリ 所有者だけが読み書き実行できる。.ssh ディレクトリやpersonal フォルダで使う 600 rw------- SSH鍵・パスワードファイル 所有者しか読み書きできない。SSH鍵(id_rsa)はこれ以外だと使えない 777 = rwxrwxrwx ⚠ 誰でも書き換え可能・サーバーでは絶対NG
図2:755(公開ファイル)/644(文書)/600(鍵)の3パターンを覚えれば実用には足りる

おすすめの使い方

自分のスクリプトを実行するときに「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だけでなく、学校や会社のシステムを安全に使うための基礎リテラシーです。

今日からできること

3ステップで始めよう
  1. ターミナルでls -lを実行し、ファイル一覧の左端の権限表記を眺める
  2. touch test.shでファイルを作り、chmod 755 test.shで権限を変えてls -lで確認する
  3. 数字表記(644・755・600・700)の意味を紙に書き出して暗記する

まとめ

Linuxのパーミッションは、「誰が」「何を」「どこまでできるか」を細かく決められる仕組みです。読み(r=4)・書き(w=2)・実行(x=1)を所有者・グループ・その他に対して設定し、3桁の数字で表します。755・644・600・700の4パターンを覚えるだけで、Webサーバー・SSH・スクリプト実行のほとんどの場面に対応できます。

確認 パーミッションが表すのは?