【2026年7月最新】chownコマンド完全ガイド|Linuxファイル所有権変更・全オプション・実務活用まで徹底解説
この記事の内容
「Webサーバーにファイルをアップロードしたら権限エラーが出た」「Pythonスクリプトが動かない、権限がないと言われる」——Linuxを使っていると必ず直面するのがファイルの所有権の問題です。
Linuxでは、すべてのファイルとディレクトリに所有者(ユーザー)とグループが設定されており、この設定が誤っているとアプリケーションが動作しません。この所有権を変更するコマンドがchownです。
この記事では、chownコマンドの基礎から全オプション、Webサーバー運用での実践例、chmodとの違い、Claude Codeでの自動化まで、実務で本当に役立つ情報を徹底解説します。入門記事にありがちな「使い方だけ」ではなく、なぜその設定が必要なのかまで理解できるよう設計しています。
この記事を読み終わると、以下のことがすべてできるようになります。
01 WHAT IS CHOWN chownコマンドとは何か(所有権の基礎概念) chown = change owner。ファイル・ディレクトリの所有者を変更するLinuxコマンド
chownは Change Owner の略で、Linuxのファイル・ディレクトリの所有者(owner)とグループ(group)を変更するコマンドです。GNU coreutilsパッケージの一部として、すべてのLinuxディストリビューションに標準搭載されています。
📚 用語解説
所有権(ownership):Linuxでは、すべてのファイルとディレクトリに「誰が所有しているか(ユーザー)」と「どのグループに属するか(グループ)」が設定されています。この情報をまとめて「所有権」と呼びます。所有権はファイルへのアクセス制御(読み取り・書き込み・実行)の基礎となります。
Linuxのセキュリティモデルでは、ファイルへのアクセス権は「誰がそのファイルを所有しているか」によって決まります。例えば、Webサーバー(nginx)のプロセスが所有していないファイルは読み取れない、といった制御が自動的に働きます。
chownが必要になる典型的な場面を見てみましょう。
chownを実行するにはroot権限(sudo)が必要です。一般ユーザーは自分が所有するファイルの所有権を他のユーザーに移すこともできません(「Give away」の禁止)。これはセキュリティ上の重要な制約です。
📚 用語解説
root(ルート):Linuxのスーパーユーザー(管理者)のこと。すべてのファイルへのアクセス権を持ち、所有権変更・プロセス管理・システム設定など、あらゆる操作が可能です。WindowsのAdministratorに相当しますが、権限の範囲はさらに広いです。
02 USER & GROUP Linuxの所有者とグループの仕組み ls -l の出力を読み解く。ユーザー・グループ・パーミッションの三層構造
chownを使いこなすには、まずLinuxのユーザー・グループ・パーミッションの三層構造を理解する必要があります。
ls -l コマンドを実行すると、次のようなファイル情報が表示されます。
$ ls -l -rw-r--r-- 1 kohei webteam 4096 Jul 18 10:00 config.json drwxr-xr-x 2 www-data www-data 4096 Jul 18 09:00 public -rwxr-xr-x 1 deploy deploy 2048 Jul 17 15:30 deploy.sh
この出力の各フィールドを読み解きましょう。
| フィールド | 例 | 意味 |
|---|---|---|
| ファイル種別 | -(通常ファイル)/ d(ディレクトリ) | 先頭1文字。ファイルの種別を示す |
| パーミッション | rw-r--r-- | 所有者・グループ・その他の読み書き実行権限(9文字) |
| リンク数 | 1 | ハードリンクの数 |
| 所有者(owner) | kohei | このファイルを所有するユーザー名 |
| グループ(group) | webteam | このファイルが属するグループ名 |
| サイズ | 4096 | バイト単位のファイルサイズ |
| 更新日時 | Jul 18 10:00 | 最終更新日時 |
| ファイル名 | config.json | ファイル名 |
パーミッションの9文字は、3文字ずつ3グループに分かれています。
rw- r-- r-- ↑ ↑ ↑ 所有者 グループ その他 r = 読み取り(read) w = 書き込み(write) x = 実行(execute) - = 権限なし
📚 用語解説
パーミッション(permission):ファイルやディレクトリへのアクセス許可設定。「誰が」「何を」できるかを3×3の9ビットで表現します。所有者・グループ・その他の三者それぞれに、読み取り(r)・書き込み(w)・実行(x)の権限が独立して設定されます。
ここで重要なのは、「所有者が誰か」によって適用されるパーミッションが決まるという点です。
例えば config.json(所有者: kohei, パーミッション: rw-r--r--)の場合:
📚 用語解説
グループ(group):Linuxユーザーをまとめる単位。複数のユーザーを一つのグループに所属させることで、そのグループ宛の権限を一括管理できます。例えばwww-dataグループにWebサーバープロセスと開発者を所属させれば、ファイルを個別に配るよりも効率的です。
03 SYNTAX chownの基本構文・使い方 chown [オプション] 新所有者[:グループ] ファイル名の完全な構文解説
chownコマンドの基本構文は以下の通りです。
$ sudo chown [オプション] 新所有者[:グループ] ファイル名 # 例: ファイルの所有者をkoheiに変更 $ sudo chown kohei document.txt # 例: 所有者をkohei、グループをwebteamに変更 $ sudo chown kohei:webteam document.txt # 例: グループだけをwebteamに変更 $ sudo chown :webteam document.txt
構文のポイントをまとめます。
| 構文パターン | 例 | 効果 |
|---|---|---|
| chown ユーザー ファイル | chown kohei file.txt | 所有者だけをkoheiに変更(グループは変わらない) |
| chown ユーザー:グループ ファイル | chown kohei:dev file.txt | 所有者をkohei、グループをdevに変更 |
| chown :グループ ファイル | chown :dev file.txt | グループだけをdevに変更(所有者は変わらない) |
| chown ユーザー: ファイル | chown kohei: file.txt | 所有者をkoheiに変更し、グループもkoheiのログイングループに変更 |
ユーザー名の代わりにUID(ユーザーID)やGID(グループID)の数値も使えます。例えば chown 1000:1001 file.txt のように書けます。DockerfileやCI/CDスクリプトでは、ユーザー名よりUID/GIDで指定する方が安定します(ユーザー名はコンテナ間で一致しないことがある)。
現在のユーザー名とUIDを確認するには id コマンドを使います。
$ id uid=1000(kohei) gid=1000(kohei) groups=1000(kohei),4(adm),27(sudo),1001(webteam) $ id www-data uid=33(www-data) gid=33(www-data) groups=33(www-data)
04 CHANGE OWNER 所有者だけを変更する 最もシンプルな使い方。chown ユーザー名 ファイル名の実例
所有者(ユーザー)だけを変更し、グループはそのままにするには、コロン(:)なしでユーザー名だけを指定します。
# 変更前の確認 $ ls -l report.txt -rw-r--r-- 1 deploy webteam 1024 Jul 18 09:00 report.txt # 所有者をkoheiに変更 $ sudo chown kohei report.txt # 変更後の確認 $ ls -l report.txt -rw-r--r-- 1 kohei webteam 1024 Jul 18 09:00 report.txt
変更後もグループ(webteam)は変わっていないことを確認できます。所有者だけを変えたいときに便利な方法です。
複数ファイルを一度に変更する場合はスペース区切りで並べます。
# 複数ファイルを一度に変更 $ sudo chown kohei file1.txt file2.py file3.sh # ワイルドカードも使える $ sudo chown kohei /home/deploy/*.log
存在しないユーザー名を指定すると invalid user: 'nobody-user' のようなエラーが出て変更は行われません。ユーザー名のスペルミスに注意してください。
05 CHANGE GROUP グループだけを変更する chown :グループ名 ファイル名。chgrpコマンドとの使い分け
グループだけを変更し、所有者はそのままにするには、コロン(:)の前にユーザー名を書かずにグループ名だけを指定します。
# 変更前の確認 $ ls -l project/ drwxr-xr-x 3 kohei deploy 4096 Jul 18 10:00 project/ # グループをwebteamに変更(所有者はそのまま) $ sudo chown :webteam project/ # 変更後の確認 $ ls -l project/ drwxr-xr-x 3 kohei webteam 4096 Jul 18 10:00 project/
グループ変更にはchgrpコマンド(change group)という専用コマンドも存在します。
| コマンド | 例 | 違い |
|---|---|---|
| chown :グループ ファイル | chown :webteam file.txt | chownのグループ変更構文。所有者は変えない。 |
| chgrp グループ ファイル | chgrp webteam file.txt | 専用コマンド。機能は同じだが名前が明示的。 |
機能は同じです。グループだけを変えるなら chgrp の方が意図が明確で可読性が上がります。一方で、所有者とグループを同時に変えるなら chown 一択です。チームの慣習に合わせましょう。GENAIでは統一性のために chown で統一しています。
06 CHANGE BOTH 所有者とグループを同時に変更する chown ユーザー:グループ ファイル名。最も使用頻度が高い構文
実務で最も多用するのが、所有者とグループを同時に変更するケースです。デプロイ後の権限設定や、ユーザーの引き継ぎ時などに使います。
# 変更前の確認 $ ls -l webapp/ drwxr-xr-x 5 root root 4096 Jul 18 08:00 webapp/ # 所有者をwww-data、グループもwww-dataに変更 $ sudo chown www-data:www-data webapp/ # 変更後の確認 $ ls -l webapp/ drwxr-xr-x 5 www-data www-data 4096 Jul 18 08:00 webapp/
Webサーバーの設定では、アプリケーションのディレクトリをWebサーバーの実行ユーザー(nginx: www-data、Apache: apache / www-data)に所有させることで、ファイルへのアクセス権を適切に設定できます。
📚 用語解説
www-data:Debian/Ubuntu系LinuxでNginxやApacheのWebサーバーが動作するデフォルトの実行ユーザー名。CentOS/RHELではnginxやapacheというユーザー名になります。Webサーバーは最小権限の原則に従い、このユーザー権限でプロセスが動きます。
# よく使う組み合わせの例 # Nginx のコンテンツディレクトリ $ sudo chown www-data:www-data /var/www/html/ # Pythonアプリを特定ユーザーで動かす $ sudo chown appuser:appuser /opt/myapp/ # ログディレクトリを書き込み可能にする $ sudo chown deploy:deploy /var/log/myapp/ # WordPressのディレクトリ設定 $ sudo chown www-data:www-data /var/www/wordpress/
07 ALL OPTIONS 全オプション詳解(-R/-c/-v/-f/-h) chownの全オプションを網羅。-Rが最重要、-c/-vでデバッグ
chownコマンドのオプションをすべて解説します。
| オプション | 意味 | 使用場面 |
|---|---|---|
| -R / --recursive | ディレクトリとその中のすべてのファイルを再帰的に変更 | Webアプリディレクトリ全体の権限設定時 |
| -c / --changes | 変更が行われたファイルのみ表示する(verboseの抑制版) | 大量ファイルの変更で、実際に変わったものだけ確認したいとき |
| -v / --verbose | 処理したすべてのファイルを表示する(変更がなくても表示) | デバッグ時に何が処理されたか全件確認したいとき |
| -f / --silent | エラーメッセージを表示しない(サイレントモード) | スクリプト内でエラーを無視したいとき(非推奨) |
| -h / --no-dereference | シンボリックリンク自身の所有権を変更する(リンク先は変えない) | シンボリックリンクの所有権を独立して設定したいとき |
| --from=current_owner:current_group | 指定した所有者:グループのファイルだけを変更する | 特定の所有者のファイルだけを一括変換したいとき |
| --preserve-root | ルートディレクトリ(/)への操作を禁止する(デフォルト動作) | 誤って / 全体を変更してしまうのを防ぐ安全装置 |
| --reference=参照ファイル | 指定ファイルと同じ所有者:グループを設定する | 別ファイルの設定をコピーしたいとき |
-c と -v の違いを実際に確認してみましょう。
# -c: 実際に変更されたファイルのみ表示 $ sudo chown -Rc kohei:webteam /home/project/ changed ownership of '/home/project/config.json' from root:root to kohei:webteam changed ownership of '/home/project/src/main.py' from root:root to kohei:webteam # -v: すべての処理を表示(変更なしのものも含む) $ sudo chown -Rv kohei:webteam /home/project/ ownership of '/home/project/' retained as kohei:webteam changed ownership of '/home/project/config.json' from root:root to kohei:webteam ownership of '/home/project/src/' retained as kohei:webteam
📚 用語解説
シンボリックリンク:Windowsの「ショートカット」に相当するLinuxの機能。実体ファイルへのリンク(ポインタ)です。通常のchownはシンボリックリンクをたどってリンク先ファイルの所有権を変更しますが、-hオプションを付けるとリンクファイル自体の所有権を変更します。
# --from オプション: rootが所有するファイルだけをkoheiに変更 $ sudo chown --from=root:root kohei:webteam /home/deploy/* # --reference: 参照ファイルと同じ所有者:グループを設定 $ sudo chown --reference=/home/project/config.json new_config.json
08 RECURSIVE -Rでディレクトリ内を一括変更する chown -R ユーザー:グループ ディレクトリ名。Webアプリ全体の権限設定に必須
-R(--recursive)オプションは、指定したディレクトリとその中のすべてのファイル・サブディレクトリを再帰的に変更します。Webアプリケーションのデプロイや、ユーザーのホームディレクトリ移管など、実務で最も多用するオプションです。
# ディレクトリ構造の確認 $ ls -lR /var/www/myapp/ /var/www/myapp/: drwxr-xr-x 2 root root 4096 Jul 18 10:00 public -rw-r--r-- 1 root root 1024 Jul 18 10:00 index.php drwxr-xr-x 2 root root 4096 Jul 18 10:00 storage # 全体の所有権をwww-dataに変更 $ sudo chown -R www-data:www-data /var/www/myapp/ # 変更後の確認 $ ls -lR /var/www/myapp/ /var/www/myapp/: drwxr-xr-x 2 www-data www-data 4096 Jul 18 10:00 public -rw-r--r-- 1 www-data www-data 1024 Jul 18 10:00 index.php drwxr-xr-x 2 www-data www-data 4096 Jul 18 10:00 storage
-Rオプションを使うときは、対象パスを必ず具体的に指定してください。「/var/www/myapp/」のような明確なパスが必須です。誤って広い範囲を指定すると、システム全体のファイル所有権が変わってしまうことがあります。Linuxには --preserve-root という保護機能がありますが、過信は禁物です。必ず実行前に ls -la でパスを確認する習慣をつけましょう。
-R を使うときのベストプラクティスを確認しましょう。
# -Rc を使って変更されたファイルを確認しながら実行 $ sudo chown -Rc www-data:www-data /var/www/myapp/ changed ownership of '/var/www/myapp/public/index.html' from root:root to www-data:www-data changed ownership of '/var/www/myapp/storage/logs/app.log' from deploy:deploy to www-data:www-data
📚 用語解説
再帰的(recursive):ディレクトリ内をネストの深さに関わらずすべて処理すること。「再帰的に変更する」= そのディレクトリの中のサブディレクトリの中のファイルも含めて、すべてを変更するという意味です。ツリー構造の末端まで処理するイメージです。
09 CHOWN VS CHMOD chownとchmodの違い・使い分け 所有権と権限は別物。chown=誰のもの、chmod=何ができるか
Linuxの権限管理でよく混乱するのがchownとchmodの違いです。両者は密接に関連していますが、役割はまったく異なります。
| コマンド | 変更するもの | 例 | 効果 |
|---|---|---|---|
| chown | 所有者(誰のファイルか) | chown kohei file.txt | ファイルの主をkoheiに変更 |
| chmod | パーミッション(何ができるか) | chmod 755 file.txt | 所有者は読み書き実行、その他は読み実行のみ |
「誰に」と「何を」は独立した設定です。実務ではセットで使うことがほとんどです。
典型的な組み合わせパターンを見てみましょう。
# Webアプリの典型的な権限設定パターン # 1. コンテンツディレクトリ(Nginxが読み取りのみ) $ sudo chown www-data:www-data /var/www/html/ $ sudo chmod 755 /var/www/html/ # 2. アップロードディレクトリ(Nginxが書き込み可能) $ sudo chown www-data:www-data /var/www/html/uploads/ $ sudo chmod 775 /var/www/html/uploads/ # 3. 設定ファイル(所有者だけ読み書き) $ sudo chown deploy:deploy /opt/app/config.ini $ sudo chmod 600 /opt/app/config.ini # 4. 実行スクリプト(所有者だけ実行可能) $ sudo chown deploy:deploy /opt/app/run.sh $ sudo chmod 700 /opt/app/run.sh
📚 用語解説
パーミッション数値(755, 644, 777など):chmodで指定する3桁の数値。各桁が「所有者」「グループ」「その他」に対応し、r=4, w=2, x=1 の合計値で表します。755 = 所有者(7=rwx)、グループ(5=r-x)、その他(5=r-x)。644 = 所有者(6=rw-)、グループ(4=r--)、その他(4=r--)。
chmod 777(全員が読み書き実行可能)はテスト環境での応急処置には使われますが、本番環境では絶対に使ってはいけません。悪意あるプロセスやユーザーがファイルを書き換えられる状態になります。最小権限の原則に従い、必要最小限の権限だけを付与してください。
10 WEB SERVER Webサーバー運用でのchown実践(Nginx / Apache) 「403 Forbidden」「permission denied」の根本原因と解決手順
chownが最も活躍するのがWebサーバーの権限設定です。「デプロイしたら403エラーが出た」「ファイルのアップロードが失敗する」などのトラブルはほぼすべて所有権とパーミッションの問題です。
まず、Nginx / Apacheの実行ユーザーを確認しましょう。
# 実行中のWebサーバーユーザーを確認する方法 $ ps aux | grep nginx www-data 1234 0.0 0.1 12345 2345 ? S 10:00 0:00 nginx: worker process $ ps aux | grep apache www-data 5678 0.0 0.2 23456 4567 ? S 10:00 0:00 apache2 -k start # 環境によって www-data / apache / nginx のいずれかが実行ユーザー
403 Forbiddenが発生するパターンと解決手順を確認しましょう。
10-1. パターン1: ドキュメントルートの所有権がwww-dataでない
# 問題のある状態 $ ls -la /var/www/html/ drwxr-xr-x 2 root root 4096 Jul 18 10:00 . # 解決策: Nginxユーザーに所有権を移す $ sudo chown -R www-data:www-data /var/www/html/ # または: グループをwww-dataにしてグループ権限でアクセス $ sudo chown -R deploy:www-data /var/www/html/ $ sudo chmod -R g+r /var/www/html/
10-2. パターン2: アップロードディレクトリへの書き込みができない
# 問題のある状態 $ ls -la /var/www/html/uploads/ drwxr-xr-x 2 root root 4096 Jul 18 10:00 uploads/ # 解決策: www-dataが書き込めるように変更 $ sudo chown www-data:www-data /var/www/html/uploads/ $ sudo chmod 775 /var/www/html/uploads/
10-3. パターン3: PHPのセッションファイルに書き込めない
# セッションディレクトリの確認 $ ls -la /var/lib/php/sessions/ drwx-wx-wt 2 root root 4096 Jul 18 10:00 sessions/ # www-dataに所有権を与える $ sudo chown www-data:www-data /var/lib/php/sessions/
CI/CDパイプラインでは、ファイルをコピーした直後にchownを実行するステップを組み込んでおくのがベストプラクティスです。手動での権限設定ミスをゼロにできます。
11 ERRORS & FIXES よくあるエラーと対処法 chown実行時に遭遇するエラーメッセージと根本原因・解決策
chownを使っていて遭遇する典型的なエラーとその解決法をまとめます。
11-1. Operation not permitted(操作が許可されていない)
$ chown kohei file.txt chown: changing ownership of 'file.txt': Operation not permitted # 解決策: sudoを付けて実行 $ sudo chown kohei file.txt
これはsudo(管理者権限)なしでchownを実行したときに発生します。chownはroot権限が必要です。
11-2. invalid user(存在しないユーザー)
$ sudo chown nonexistentuser file.txt chown: invalid user: 'nonexistentuser' # 解決策: ユーザーが存在するか確認 $ id nonexistentuser id: 'nonexistentuser': no such user $ id kohei uid=1000(kohei) gid=1000(kohei) groups=1000(kohei),27(sudo),1001(webteam)
11-3. No such file or directory(ファイルが存在しない)
$ sudo chown kohei /home/deploy/missing.txt chown: cannot access '/home/deploy/missing.txt': No such file or directory # パスのスペルミスを確認 $ ls /home/deploy/ actual_file.txt another_file.py
11-4. シンボリックリンクのchown挙動
# 通常: シンボリックリンクをたどってリンク先を変更 $ sudo chown kohei mylink # → mylink が指すファイルの所有者が変わる # -h オプション: シンボリックリンク自体を変更 $ sudo chown -h kohei mylink # → シンボリックリンクファイル自体の所有者が変わる
📚 用語解説
sudo(sudoers):Substitute User DO の略。一時的にroot権限で特定のコマンドを実行する仕組みです。suコマンドでrootに切り替えるより安全で、どのユーザーが何のコマンドを実行したかがログに残ります。どのユーザーがsudoを使えるかはsudoers設定ファイルで管理されます。
12 AUTOMATE WITH CLAUDE CODE Claude Codeで権限管理を自動化する デプロイ後のchown/chmod設定をClaude Codeに任せて人的ミスをゼロに
chownの知識を持っていても、デプロイのたびに手動で権限設定するのはミスが発生しやすく非効率です。GENAIではClaude Codeを使って、サーバー権限管理を含む運用タスクを自動化しています。
Claude Codeとは、ターミナルから使えるAIコーディングアシスタントです。コマンドの説明、スクリプトの生成、エラーの診断から、実際のコマンド実行まで一気通貫で対応できます。
12-1. デプロイ後の権限設定スクリプトを自動生成
Claude Codeに以下のように依頼すると、環境に応じた権限設定スクリプトを自動で生成してくれます。
# Claude Codeへの依頼例(ターミナルで実行)
$ claude "Nginxで動かすPHPアプリのデプロイ後に実行する権限設定シェルスクリプトを作って。
ドキュメントルートは /var/www/myapp、
アップロードディレクトリは /var/www/myapp/storage/uploads、
Nginxの実行ユーザーはwww-data。"
# Claude Codeが生成するスクリプト例(set_permissions.sh の内容)
APP_DIR="/var/www/myapp"
WEB_USER="www-data"
echo "=== 権限設定開始 ==="
sudo chown -Rc "${WEB_USER}:${WEB_USER}" "${APP_DIR}"
sudo chmod -R 755 "${APP_DIR}"
sudo chmod 775 "${APP_DIR}/storage/uploads"
echo "=== 権限設定完了 ==="
ls -la "${APP_DIR}"
12-2. 権限エラーのデバッグをClaude Codeに依頼
「403が出た」「permission deniedエラーが出た」というときも、Claude Codeに診断を依頼できます。
# エラーメッセージを貼り付けて診断依頼 $ claude "Nginxで403 Forbiddenが出ている。 ls -la の出力: drwxr-xr-x 2 root root 4096 Jul 18 10:00 /var/www/html Nginxのログ: 2026/07/18 10:00:00 [error] permission denied while reading... 原因と解決コマンドを教えて。" # Claude Codeの回答例 # 原因: /var/www/html の所有者が root で、Nginx (www-data) が読み取れない # 解決: $ sudo chown -R www-data:www-data /var/www/html $ sudo chmod -R 755 /var/www/html
さらに発展的な活用として、CI/CDパイプラインでの自動権限設定も可能です。
# GitHub Actionsでの自動権限設定例(deploy.yml)
- name: Set file permissions
run: |
# シェルスクリプトでサーバーに接続して権限設定
# 事前に set_permissions.sh をサーバーに配置しておく
# サーバー側でスクリプトを実行する形が安全
echo "デプロイ完了: 権限設定スクリプトを実行"
Claude Codeはnpm経由でインストールできます(npm install -g @anthropic-ai/claude-code)。インストール後、ターミナルで claude コマンドを実行するだけで使い始められます。GENAIではLinux権限設定のほか、シェルスクリプト生成、ログ分析、障害診断など幅広く活用しています。
Linuxの権限管理も含めたサーバー運用・業務自動化について、Claude Codeを活用した実践的な支援を提供しています。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
AI活用を自社で回せるようになりたい方へ
AI鬼管理
Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。
よくある質問
Q. chownコマンドを実行するにはsudoが必要ですか?
A. はい、chownはroot権限が必要です。sudo chownとして実行してください。自分が所有するファイルを別のユーザーに「譲渡」することも、セキュリティ上の理由から一般ユーザーには許可されていません(rootのみ可能)。
Q. chownとchmodは何が違いますか?
A. chownは「そのファイルが誰のものか(所有者・グループ)」を変更します。chmodは「そのファイルで何ができるか(読み取り・書き込み・実行の権限)」を変更します。権限エラーを解決するには、まずchownで所有者を正しく設定し、次にchmodで必要な権限を付与する、という順序で対応します。
Q. ディレクトリ内のすべてのファイルの所有権を一括変更するには?
A. chown -R(--recursive)オプションを使います。例: sudo chown -R www-data:www-data /var/www/html/ で、/var/www/html/ 以下のすべてのファイルとサブディレクトリの所有権を一括変更できます。-c オプションを組み合わせると、実際に変更されたファイルだけが表示されてデバッグしやすくなります。
Q. グループだけを変更したい場合はどうしますか?
A. chown :グループ名 ファイル名 のようにコロンの前を空にします。例: sudo chown :webteam file.txt でファイルのグループだけをwebteamに変更できます(所有者は変わりません)。chgrpコマンド(sudo chgrp webteam file.txt)でも同じことができます。
Q. Webサーバーで403エラーが出たときのデバッグ手順は?
A. 1)ls -la でファイルの所有者とパーミッションを確認、2)ps aux でWebサーバーの実行ユーザーを確認(www-dataやapacheが多い)、3)所有者がWebサーバーユーザーと一致しているか比較、4)一致していない場合はsudo chown -R www-data:www-data /path/to/docroot で修正、という4ステップで対応します。
Q. chownでrootから一般ユーザーに所有権を移すとき、rootに戻せますか?
A. はい、rootはchownで常に誰のファイルでも所有権を変更できます。管理者権限でrootユーザーに所有権を戻すことが可能です。ただし、rootから一般ユーザーAに変更したあと、ユーザーAは自力でrootに戻すことができません。この非対称性がLinux権限管理の重要な特性です。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
Claude Code を業務に落とし込む
専門研修コース一覧
受講者本人の業務を題材に、「使いこなせる」状態になるまで伴走する研修プログラム。1対1特化型・ハンズオン・法人講座の3コースを展開中。業務特化・実装まで踏み込むタイプのClaude Code研修です。
研修コース一覧を見る →AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。





