権限周りでハマりやすいchmod / chownの整理

LinuxやmacOSで作業していると、ある日突然「ファイルが開けない」「保存できない」「実行できない」といったトラブルに遭遇することがあります。エラー内容をよく見ると「Permission denied」という文字。

この時点で、多くの人が「権限やろか?」と身構えるのではないでしょうか。

chmod や chown は、ファイルやディレクトリの権限を扱うための基本コマンドですが、意味をなんとなくで使っていると、あとで必ずハマります。特に初心者のうちは「とりあえず 777 にする」「sudo を付けて解決したことにする」といった対処をしがちです。ただし、それは根本解決ではありません。

この記事では、chmod と chown の役割を整理しつつ、なぜ権限トラブルが起きるのか、どう考えれば安全に解決できるのかを、初心者目線で丁寧に解説していきます。

「権限怖い…」とならないための土台を作るのがゴールです。

目次

概要説明:chmod と chown は何をしているのか

まず全体像を押さえましょう。

chmod と chown は、どちらも「ファイルの権限」を扱いますが、担当分野がまったく違います

  • chmod:そのファイルを「何ができるか」を決める
  • chown:そのファイルの「持ち主は誰か」を決める

この2つが混ざって理解されがちなのが、権限トラブルの大きな原因です。

ファイルには「所有者」と「許可」がある

Linux系OSでは、すべてのファイルとディレクトリに次の情報がセットで付いています。

  • 所有者(オーナー)
  • グループ
  • それぞれに対する権限(読み・書き・実行)

つまり、「誰が」「何をしていいか」が明確に決められている世界です。

これは現実世界でいうと、建物の鍵と名札のような関係です。

  • chown:名札を誰のものにするか
  • chmod:鍵で何ができるか(入れる・物を置ける・作業できる)

この例えを頭に入れておくと、後の理解がかなり楽になります。

詳細解説:chmod の考え方を整理する

chmod は「mode(権限)」を change(変更)するコマンドです。

ここでは「数字の chmod」がなぜ分かりづらいのかを含めて説明します。

読み・書き・実行とは何か

まず基本となる3つの権限です。

  • 読み(read):ファイルの中身を見られる
  • 書き(write):ファイルの中身を変更できる
  • 実行(execute):プログラムとして実行できる

ディレクトリの場合は少し意味が変わります。

  • 読み:中に何があるか一覧できる
  • 書き:中にファイルを作ったり消したりできる
  • 実行:中に入れる(cdできる)

ディレクトリの実行権限=中に入れる権利、ここは特にハマりやすいポイントです。

3桁の数字が意味するもの

chmod 755 や chmod 644 のような指定を見たことがあると思います。

この3桁は、それぞれ以下を表しています。

  • 1桁目:所有者
  • 2桁目:グループ
  • 3桁目:その他(それ以外の人)

そして数字の意味は次の足し算です。

  • 読み:4
  • 書き:2
  • 実行:1

たとえば 7 は「4 + 2 + 1」で、全部OKという意味になります。

最初は暗号のように見えますが、実はチェックボックスの合計値だと思うと理解しやすいです。

よく使われる権限の意味

実務でよく見かけるものを整理しておきます。

  • 644:所有者は読み書きOK、他は読むだけ → テキストファイルによく使われる
  • 755:所有者は全部OK、他は読みと実行 → 実行ファイルやディレクトリによく使われる
  • 600:所有者だけが読み書き可能 → 秘密鍵や設定ファイル向け

ここで大事なのは、「とりあえず 777」は基本的にNGだということです。

777 は「誰でも何でもできる」状態なので、セキュリティ的に非常に危険です。

詳細解説:chown が必要になる場面

chmod をいじっても解決しないとき、原因は chown 側にあることがよくあります。

所有者が違うと何が起きるか

たとえば、あるファイルの所有者が root になっている場合、一般ユーザーはそのファイルを自由に操作できません。

chmod で書き込み権限を付けても、そもそも所有者でなければ意味がないケースもあります。

これは「他人の家のドアに、勝手に自分用の鍵を付けても使えない」ようなものです。

chown の役割

chown は、ファイルやディレクトリの「持ち主」と「グループ」を変更します。

実務では次のような場面で使われます。

  • sudo で作成したファイルを一般ユーザーに戻したい
  • Webサーバーから書き込めるように所有者を合わせたい
  • 開発環境でユーザー不一致を解消したい

特に Docker や 仮想環境を使っていると、知らないうちに root 所有のファイルが混ざることがあり、ここでハマる人がとても多いです。

chmod と chown を混同すると起きる事故

権限トラブルの典型的な失敗パターンを整理しておきます。

chmod しても直らない問題

「書き込みできない → chmod 777 にした → それでもダメ」

この場合、ほぼ確実に所有者の問題です。

chmod は「許可の内容」を変えるだけで、「誰に許可するか」は変えられません。

chown だけ変えても危険なケース

逆に、所有者を変えただけで安心するのも危険です。

実行してはいけないファイルに実行権限が付いたまま、というケースもあります。

chmod と chown はセットで考える、これが(割と)重要です。

実務でのポイント:安全に権限を扱う考え方

ここからは、実務で役立つ考え方にフォーカスします。

まず「誰が使うファイルか」を考える

権限設定で迷ったら、最初に考えるべきはここです。

  • このファイルを触るのは誰か
  • 実行するのか、読むだけか
  • サーバー(プロセス)が使うのか、人が使うのか

これを整理すると、必要な権限は自然と絞られます。

最小権限を意識する

権限は「足りなければ足す」が基本です。

最初から全部開けるのではなく、必要最低限だけ許可することで、事故を防げます。

sudo 連発は一度立ち止まって

sudo を使えば大抵の問題は一時的に解決しますが、根本原因を隠してしまうことが多いです。

「なぜ sudo が必要なのか」を一度立ち止まって考える癖をつけると、権限トラブルに強くなります。

一問一答:よくある疑問

ここでは、初心者がよく感じる疑問をいくつか整理します。

chmod 777 は本当にダメ?

一時的な検証用途ならまだしも、常用や本番環境では避けるべきです。誰でも何でもできる状態になります。

chown と chmod、どっちから触るべき?

基本は chown → chmod の順です。所有者が合っていないと、chmod の意味が薄れます。

ディレクトリに実行権限がないと何が起きる?

中に入れません。ファイルが存在していても、アクセスできなくなります。

まとめ

chmod と chown は、Linux環境で避けて通れない基本知識です。

最初はとっつきにくく感じますが、「所有者」と「許可内容」を分けて考えるだけで、理解は一気に進みます。

権限トラブルは、慣れてくると「原因の当たり」を付けられるようになります。

その第一歩として、chmod は何ができるか、chown は誰が持つかという整理を、ぜひ頭に残しておいてください。

正しく理解できれば、権限は怖いものではなく、むしろ安全に作業する上で心強い味方になります。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次