Linux権限管理入門【基礎編】
Linuxの権限管理は、システムセキュリティの基盤です。この基礎編では、権限の仕組み、危険回避術、chmod基本操作を安全に学んでいきます。初心者が陥りやすい罠と正しい対処法を重点的に解説します。
1. 権限の基本概念
Linuxでは、すべてのファイルとディレクトリに3種類のユーザーと3種類の権限が設定されています。
ユーザーの種類
- Owner (u) - ファイルの所有者
- Group (g) - グループメンバー
- Others (o) - その他のユーザー
権限の種類
- Read (r) - 読み取り権限(4)
- Write (w) - 書き込み権限(2)
- Execute (x) - 実行権限(1)
2. ⚠️ 初心者が陥りやすい罠と危険パターン
Linux権限管理において、初心者が陥りやすい危険な操作とよくある誤解を事前に学び、セキュリティリスクを回避しましょう。
🚨 最も危険:chmod 777 の乱用
絶対にやってはいけない操作
❌ 危険な例
$ chmod 777 /var/www/html/ $ chmod -R 777 /home/user/ $ chmod 777 /etc/config.php
これは非常に危険です! 誰でもファイルを読み書き・実行できる状態になります。
🔥 777の危険性
- セキュリティ侵害 - 他のユーザーが機密情報にアクセス可能
- システム破壊 - 重要ファイルの意図しない変更・削除
- マルウェア感染 - 悪意のあるコードの実行リスク
- データ漏洩 - 機密データの不正アクセス
✅ 正しい代替案
- Webファイル:
chmod 644(ファイル) /chmod 755(ディレクトリ) - 設定ファイル:
chmod 600(所有者のみアクセス) - 実行ファイル:
chmod 755またはchmod 700 - ログディレクトリ:
chmod 750(グループ読み取り許可)
🔍 よくある権限の誤解と間違い
❌ 間違い:「アクセスできない = chmod 777で解決」
症状: ファイルが開けない、エラーが出る
間違った対処: chmod 777 filename
✅ 正しいアプローチ
- 現在の権限を確認:
ls -l filename - 必要最小限の権限を付与:
chmod 644 filename - 所有者を確認:
ls -l filename | awk '{print $3 $4}' - 必要に応じて所有者変更:
sudo chown user:group filename
❌ 間違い:再帰的権限変更の誤用
危険なコマンド: chmod -R 777 /
結果: システム全体のセキュリティが破綻
✅ 正しい方法
$ find /var/www/html -type f -exec chmod 644 {} \;
$ find /var/www/html -type d -exec chmod 755 {} \;
ファイルとディレクトリを分けて適切な権限を設定
❌ 間違い:実行権限の混同
よくある誤解: 「ファイルを開くには実行権限が必要」
✅ 正しい理解
- テキストファイル: 読み取り権限(r)のみで十分
- スクリプト実行: 実行権限(x)が必要
- ディレクトリアクセス: 実行権限(x)が必要
$ chmod 644 document.txt # テキストファイル $ chmod 755 script.sh # 実行スクリプト $ chmod 755 directory/ # ディレクトリ
🪤 初心者がハマりやすい具体的な罠
罠1: Webサイトが表示されない
問題発生: 「403 Forbidden」エラーが表示される
間違った対処: chmod -R 777 /var/www/html/
結果: セキュリティ脆弱性が発生!
正しい対処法:
$ sudo find /var/www/html -type d -exec chmod 755 {} \;
$ sudo find /var/www/html -type f -exec chmod 644 {} \;
$ sudo chown -R www-data:www-data /var/www/html/
罠2: SSH秘密鍵のアクセス拒否
問題発生: 「Permission denied (publickey)」エラー
間違った対処: chmod 777 ~/.ssh/id_rsa
結果: SSHが秘密鍵を拒否(セキュリティ機能)
正しい対処法:
$ chmod 700 ~/.ssh/ # ディレクトリ $ chmod 600 ~/.ssh/id_rsa # 秘密鍵 $ chmod 644 ~/.ssh/id_rsa.pub # 公開鍵 $ chmod 600 ~/.ssh/config # 設定ファイル
罠3: スクリプトが実行できない
問題発生: 「Permission denied」でスクリプトが実行できない
症状確認: ls -l script.sh → -rw-r--r--
正しい対処法:
$ chmod u+x script.sh # 所有者に実行権限を追加 $ chmod 755 script.sh # または数値で設定
3. 権限の読み方
ls -lコマンドで表示される権限情報を正しく読み取れるようになりましょう。
権限情報の表示
$ ls -l example.txt -rw-r--r-- 1 user group 1024 Jan 11 10:00 example.txt
実例で理解する権限の読み方
-rw-r--r--
通常ファイル
- 所有者:読み書き可
- グループ:読み取りのみ
- その他:読み取りのみ
用途:一般的なドキュメント
-rwxr-xr-x
実行可能ファイル
- 所有者:読み書き実行可
- グループ:読み取り実行可
- その他:読み取り実行可
用途:実行スクリプト
drwxr-xr-x
ディレクトリ
- 所有者:フルアクセス
- グループ:閲覧・移動可
- その他:閲覧・移動可
用途:公開ディレクトリ
-rw-------
プライベートファイル
- 所有者:読み書き可
- グループ:アクセス不可
- その他:アクセス不可
用途:秘密鍵、設定ファイル
4. chmod - 権限の変更
chmod(Change Mode)コマンドで、ファイルやディレクトリの権限を変更します。
シンボリック方式
基本構文
chmod [who][operation][permission] file
- who: u (user), g (group), o (others), a (all)
- operation: + (追加), - (削除), = (設定)
- permission: r (read), w (write), x (execute)
実例:所有者に実行権限を追加
$ chmod u+x script.sh
実例:グループから書き込み権限を削除
$ chmod g-w file.txt
実例:すべてのユーザーに読み取り権限
$ chmod a+r document.pdf
数値方式
よく使う権限設定
$ chmod 755 script.sh # rwxr-xr-x $ chmod 644 file.txt # rw-r--r-- $ chmod 600 private.key # rw------- $ chmod 777 public/ # rwxrwxrwx(危険!)
再帰的な変更
ディレクトリ以下すべてを変更
$ chmod -R 755 /path/to/directory/
🛡️ 安全な権限変更のコツ
1. 現在の権限を必ず確認
$ ls -l filename
変更前に現在の状態を把握する
2. 最小権限の原則
必要最小限の権限のみ付与する
- 読み取りのみ必要 → 644
- 実行も必要 → 755
- プライベート → 600/700
3. 段階的な変更
$ chmod u+x file.sh # まず所有者のみ $ chmod g+x file.sh # 問題なければグループにも
一度に大きく変更せず、段階的に調整
🔐 権限管理シリーズ全体
当サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである「Amazonアソシエイト・プログラム」の参加者です。商品価格に影響はありません。
📚 権限管理・セキュリティ学習におすすめの書籍
Linux権限管理とセキュリティを効率的にマスターするために、実際に役立つ書籍を厳選してご紹介します。基礎からセキュリティ専門、実務応用まで段階的に学べます。
📚 新しいLinuxの教科書
対象レベル: 初級〜中級
権限管理の章を含む総合的なLinux教科書。chmodの基本から始めて、ファイル権限の仕組みを段階的に学べます。権限管理の全体像を理解したい方に最適な一冊です。
📚 Linuxセキュリティ標準教科書
対象レベル: 初級〜中級(セキュリティ基礎)
LPI公式のセキュリティ教科書。chmod、パーミッション、ファイルセキュリティの基礎を網羅。この記事で学んだ「chmod 777の危険性」などのセキュリティベストプラクティスを体系的に理解できます。初心者でも安心して学べる構成です。
📚 Linuxサーバーセキュリティ徹底入門
対象レベル: 中級〜上級(セキュリティ実践)
サーバーセキュリティの実践書。より詳細な権限設定、ファイルシステムセキュリティ、セキュリティ監査まで深掘りできます。基本的なchmodをマスターした後、実務レベルのセキュリティ対策を学びたい方に強く推奨します。
📚 入門者のLinux - 素朴な疑問を解消しながら学ぶ
対象レベル: 初級(実践入門)
初学者の「なぜ?」に答えながら権限管理の基礎を実践的に学べる入門書。この記事と同じように、chmodの基本から始めて徐々にステップアップできる構成。「なぜこの権限が必要なのか」という疑問を解消しながら学習を進められます。
📚 ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版
対象レベル: 中級〜上級
権限管理を実務で活用する実践書。基本的なchmodをマスターした後、それらを実際のサーバー構築・運用でどう使うのかを体系的に学べます。Webサーバーの権限設定、ログファイルの権限管理など、実務で即戦力となる権限設定方法を知りたい方に最適です。
🎉 実践で権限管理をマスターしよう
書籍で知識を習得したら、Penguin Gym Linuxの実践課題で手を動かして学習を定着させましょう。chmod、パーミッション、セキュリティ対策を実際に使うことで、確実にスキルアップできます。