【初心者向け】Linuxのアクセス権限を自在に操る!chmodとchownの使い方ガイド

Linux

Linuxを使いこなす上で避けて通れないのが「アクセス権限の管理」です。

よくあるトラブル:

  • 「ファイルにアクセスできない」
  • 「他のユーザーに編集を許可したいけど、やり方が分からない」
  • 「スクリプトが実行できない」
  • 「Permission deniedエラーが出る」

これらの多くは、アクセス権限の設定ミスから生まれます。

そこでこの記事では、Linuxにおけるファイルやフォルダのアクセス権限を変更するコマンド「chmod」「chown」について、分かりやすく解説します。

スポンサーリンク

第1章:Linuxのアクセス権限とは?基本を理解しよう

アクセス権限の基本構造

Linuxでは、ファイルやフォルダへのアクセスを「所有者(owner)」「グループ(group)」「その他(others)」に分けて管理しています。

3つの対象:

  • 所有者(owner):ファイルの持ち主
  • グループ(group):所属するグループのメンバー
  • その他(others):上記以外のすべてのユーザー

3つの権限:

  • r(read):読み取り – ファイルの中身を見る
  • w(write):書き込み – ファイルを編集・削除する
  • x(execute):実行 – プログラムとして実行する

権限の表示方法

ls -l ファイル名

出力例:

-rwxr-xr-- 1 tanaka staff 1024 Jan 15 10:30 script.sh

表示の読み方:

 -rwxr-xr--
↑ ↑ ↑ ↑
 | |  |  └─ その他の権限(r--)→ 読み取りのみ
 | |  └──── グループの権限(r-x)→ 読み取り・実行のみ  
 | └────── 所有者の権限(rwx)→ 読み・書き・実行すべて可能
 └──────── ファイルの種類(-:ファイル、d:フォルダ)

フォルダの場合の特殊な意味

フォルダの権限は少し違います:

  • r:フォルダの中身を一覧表示できる
  • w:フォルダ内にファイルを作成・削除できる
  • x:フォルダに入ることができる(重要!)

注意: フォルダに入るには実行権限(x)が必要です。

なぜ権限管理が重要なの?

セキュリティ対策:

  • 他人に不必要な書き込み権限を与えると、悪意ある操作が可能になる
  • 機密ファイルを適切に保護できる

誤操作防止:

  • 大切なファイルを誤って削除・上書きしてしまうリスクを減らせる
  • システムファイルを間違って変更することを防げる

第2章:chmodコマンドでアクセス権限を変更する

chmodの基本構文

chmod [オプション] [モード] [ファイル名]

chmodでは、記号方式数値方式の2種類で権限を設定できます。

記号方式(分かりやすい方法)

基本的な構文:

chmod [対象][操作][権限] ファイル名

対象の指定:

  • u:所有者(user)
  • g:グループ(group)
  • o:その他(others)
  • a:全員(all)

操作の指定:

  • +:権限を追加する
  • -:権限を削除する
  • =:権限を指定したものだけにする

実用例:

# 所有者に実行権限を追加
chmod u+x script.sh

# グループから書き込み権限を削除
chmod g-w document.txt

# その他のユーザーからすべての権限を削除
chmod o-rwx private.txt

# 全員に読み取り権限を追加
chmod a+r readme.txt

# 所有者のみ読み書き可能にする
chmod u=rw,go=r file.txt

数値方式(効率的な方法)

数値の計算方法:

権限数値
r(読み取り)4
w(書き込み)2
x(実行)1

よく使う組み合わせ:

数値権限内容
7rwx読み・書き・実行すべて可能
6rw-読み書き可能、実行不可
5r-x読み取り・実行可能、書き込み不可
4r–読み取りのみ
0すべて不可

実用例:

# 所有者:全権限、グループ:読み・実行、その他:読み・実行
chmod 755 script.sh

# 所有者:読み書き、グループ:読み取り、その他:読み取り
chmod 644 document.txt

# 所有者のみ読み書き可能(秘密ファイル)
chmod 600 private.txt

# 所有者:全権限、他は権限なし
chmod 700 secret_folder/

よく使うchmodのパターン

実行ファイル(スクリプト)の場合:

chmod +x script.sh    # 簡単に実行権限を追加
chmod 755 script.sh   # 標準的な実行ファイル権限

設定ファイルの場合:

chmod 644 config.txt  # 一般的な設定ファイル権限
chmod 600 secret.key  # 秘密鍵などの機密ファイル

フォルダの場合:

chmod 755 public/     # 一般的なフォルダ権限
chmod 700 private/    # プライベートフォルダ

再帰的な権限変更

# フォルダとその中身すべてに適用
chmod -R 755 /var/www/html/

# 所有者のみアクセス可能なフォルダを作成
chmod -R 700 ~/private_data/

第3章:chownコマンドで所有者とグループを変更する

chownの基本構文

chown [所有者]:[グループ] [ファイル名]

基本的な使用例

所有者とグループを同時に変更:

chown tanaka:staff document.txt

所有者だけを変更:

chown tanaka document.txt

グループだけを変更:

chown :staff document.txt

実際の使用場面

ウェブサーバーの設定:

# ウェブサーバーがアクセスできるように変更
sudo chown www-data:www-data /var/www/html/index.html

# フォルダ全体を再帰的に変更
sudo chown -R www-data:www-data /var/www/html/

ユーザー間のファイル移動:

# 管理者が作成したファイルを一般ユーザーに渡す
sudo chown tanaka:tanaka /tmp/important_file.txt

開発環境の整備:

# プロジェクトフォルダを開発チームで共有
sudo chown -R developer:dev_team /opt/project/

重要な注意点

sudo権限が必要:

# 通常はsudo権限が必要
sudo chown newowner:newgroup file.txt

現在の所有者とグループを確認:

# 変更前に必ず確認
ls -l file.txt

第4章:chmod・chownの失敗例と対策

よくある危険な失敗

1. chmod 777の乱用(最も危険)

# 危険!誰でも何でもできてしまう
chmod 777 important_file.txt

なぜ危険? 全員にすべての権限を与えるため、セキュリティリスクが非常に高い

2. システムファイルの所有者変更

# 危険!システムが動かなくなる可能性
sudo chown tanaka /etc/passwd

3. 実行権限の忘れ

# スクリプトが実行できない
chmod 644 script.sh
./script.sh  # Permission deniedエラー

安全な対策とベストプラクティス

1. 事前確認を必ず行う

# 現在の状態を確認してから変更
ls -l target_file.txt
chmod 644 target_file.txt
ls -l target_file.txt  # 変更後も確認

2. 適切な権限パターンを覚える

# 推奨される権限パターン
chmod 644 一般ファイル
chmod 755 実行ファイル・フォルダ
chmod 600 機密ファイル
chmod 700 プライベートフォルダ

3. 段階的に権限を設定

# いきなり777にせず、必要最小限から始める
chmod 644 file.txt      # まず読み書きのみ
chmod +x file.txt       # 必要に応じて実行権限を追加

4. バックアップを取る習慣

# 重要なファイルは変更前にバックアップ
cp important_file.txt important_file.txt.backup
chmod 600 important_file.txt

トラブルシューティング

Permission deniedエラーの解決手順:

  1. ls -lで現在の権限を確認
  2. 所有者が正しいかチェック
  3. 必要な権限が設定されているかチェック
  4. フォルダの場合は実行権限(x)があるかチェック

具体的な解決例:

# エラーの原因を調査
ls -l problematic_file.txt

# 適切な権限に修正
chmod 644 problematic_file.txt

# 所有者が間違っていた場合
sudo chown correct_user problematic_file.txt

第5章:実践的な使用例とチートシート

よく使うパターン集

ウェブ開発での典型例:

# HTMLファイル
chmod 644 *.html

# CSSファイル
chmod 644 *.css

# JavaScriptファイル
chmod 644 *.js

# CGIスクリプト
chmod 755 *.cgi

# ウェブサーバー用フォルダ
chmod 755 public_html/
sudo chown -R www-data:www-data public_html/

サーバー管理での典型例:

# ログファイル
chmod 644 /var/log/application.log
sudo chown syslog:adm /var/log/application.log

# 設定ファイル
chmod 644 /etc/application.conf
sudo chown root:root /etc/application.conf

# 実行ファイル
chmod 755 /usr/local/bin/myapp
sudo chown root:root /usr/local/bin/myapp

権限設定のチートシート

用途権限コマンド例
一般的なファイル644chmod 644 file.txt
実行ファイル755chmod 755 script.sh
機密ファイル600chmod 600 private.key
公開フォルダ755chmod 755 public/
プライベートフォルダ700chmod 700 private/
共有フォルダ775chmod 775 shared/

まとめ:アクセス権限の理解がLinux活用の第一歩

Linuxのアクセス権限は、セキュリティと使いやすさを両立させるための核となる仕組みです。

今回紹介したchmodchownを使いこなせれば、思い通りにファイル管理ができるようになります。

本記事の重要ポイント

基本概念:

  • アクセス権限は3者×3権限(r/w/x)で管理
  • 所有者・グループ・その他に分けて細かく制御

コマンドの使い分け:

  • chmod:権限の変更(誰が何をできるか)
  • chown:所有者とグループの変更(誰のものか)

安全な運用:

  • 事前確認と段階的な変更が重要
  • 777のような危険な権限は避ける
  • 必要最小限の権限を心がける

必要でしたらお申し付けください!

コメント

タイトルとURLをコピーしました