Linuxパーミッション完全攻略!rwxの読み方と所有権の仕組みを初心者向けに徹底解説
生徒
「Linuxを使っていると『許可がありません』というエラーが出てファイルが開けないことがあります。これってどういうことですか?」
先生
「それは『パーミッション』の設定によるものですね。Linuxには、どのファイルを誰が操作できるかという厳しいルールがあるんです。」
生徒
「パーミッション……難しそうな言葉ですね。パソコン初心者でも理解できるでしょうか?」
先生
「大丈夫ですよ!お家の鍵や、学校のロッカーの管理に例えるとすごく分かりやすいんです。まずは基本の読み方からゆっくり見ていきましょう。」
1. Linuxの「パーミッション」とは何か?
Linuxにおけるパーミッション(Permission)とは、日本語で「権限」や「許可」という意味です。Linuxはもともと、複数の人が一台のコンピューターを同時に使うことを前提に作られたOS(オペレーティングシステム)です。そのため、他人のファイルを勝手に見たり、大事なシステムファイルを削除したりできないように、ファイル一つひとつに「誰が何をしていいか」というルールが決められています。
例えば、あなたの家の鍵をイメージしてください。あなたは家の鍵を持っているので中に入れますが、知らない人は入れませんよね。また、家族であっても「お父さんの書斎の机は触っちゃダメ」というルールがあるかもしれません。Linuxの世界でも、これと同じように「読み取り」「書き込み」「実行」という3つの動作に対して、許可を与えるかどうかを管理しているのです。
この権限が正しく設定されていないと、セキュリティ上のリスクが高まったり、逆に必要な作業ができなくなったりします。Linuxを扱う上で、このパーミッションの理解は避けては通れない非常に重要な一歩となります。
2. パーミッションを確認してみよう(ls -lコマンド)
まずは、実際に自分のファイルにどのような権限がついているかを確認する方法を学びましょう。ターミナルでls -lというコマンドを打ち込むと、詳細なファイル情報が表示されます。
ls -l
-rw-r--r-- 1 user1 group1 123 Jan 9 10:00 memo.txt
この結果の左端にある「-rw-r--r--」という10文字の記号に注目してください。これがパーミッションの正体です。初心者の人には呪文のように見えるかもしれませんが、実は決まった法則で並んでいます。この記号を分解して読み解くことで、そのファイルがどのような状態にあるのかが一目でわかるようになります。まずはこの「謎の文字列」を怖がらずに、情報の宝庫として眺めてみてください。
3. 「rwx」の意味を覚えよう
パーミッションを表す記号には、主に3つのアルファベットが登場します。これらはそれぞれ、ファイルに対して「何ができるか」を意味しています。
- r (read):読み取り権限。ファイルの中身を見たり、コピーしたりできる権限です。
- w (write):書き込み権限。ファイルの内容を書き換えたり、新しく保存したり、削除したりできる権限です。
- x (execute):実行権限。プログラムなどのファイルを実行して動かすことができる権限です。
もし権限がない場合は、アルファベットの代わりに「-(ハイフン)」が表示されます。例えば「r--」となっていれば、「読むことはできるけど、書き込みと実行はできない」という意味になります。これを「読み取り専用」と呼んだりもします。WindowsやMacでも「このファイルは読み取り専用です」というメッセージを見たことがあるかもしれませんが、Linuxではそれをこの記号で厳密に管理しているのです。
4. 記号の並び順にはルールがある
先ほどの「-rw-r--r--」をもう一度見てみましょう。この10文字は、以下のように4つのブロックに分けて読みます。
- 1文字目:ファイルの種類(「-」は普通のファイル、「d」はディレクトリ=フォルダを意味します)
- 2〜4文字目:所有者(自分)の権限
- 5〜7文字目:グループ(仲間)の権限
- 8〜10文字目:その他全員(他人)の権限
つまり、3文字ずつがセットになって「自分」「仲間」「他人」という順番で並んでいるのです。例えば「rw-r--r--」なら、自分は「読み書き可能」、仲間と他人は「読み取りのみ可能」という意味になります。このように、相手によって権限を変えることで、大切なデータを守りつつ、共有すべきデータは公開するという柔軟な運用が可能になっています。
5. 数値で表すパーミッション(8進数)
Linuxでは「rwx」という記号のほかに、数字を使って権限を表すこともよくあります。これは「8進数」という考え方に基づいています。最初は少し難しく感じるかもしれませんが、計算はとてもシンプルです。以下の数字を足し算するだけです。
- r (読み取り) = 4
- w (書き込み) = 2
- x (実行) = 1
例えば、「rwx」をすべて許可する場合は $4 + 2 + 1 = 7$ となります。「rw-」なら $4 + 2 = 6$ です。これを自分、グループ、他人の3人分並べます。よく聞く「755」という設定は、自分は全部OK(7)、仲間と他人は読み取りと実行だけOK(4+1=5)という意味になります。サーバーの設定ガイドなどで「パーミッションを644に変更してください」と書かれていたら、この数字のルールを思い出してください。
6. 所有者と所有グループの仕組み
パーミッションを語る上で欠かせないのが、「誰がそのファイルの持ち主なのか」という所有権の話です。ls -lの表示結果の真ん中あたりにある名前がそれを示しています。
ls -l
-rw-r--r-- 1 sato sales 500 Jan 9 11:00 report.txt
この例では、「sato」というユーザーが所有者で、「sales」というグループに属していることを示しています。もしあなたが「sato」さんなら、最初の「rw-」の権限が適用されます。もしあなたが「sato」さんではなく、かつ「sales」グループの一員なら、真ん中の「r--」が適用されます。どちらでもない場合は、最後の「r--」が適用されます。このように、Linuxは「あなたは誰?」という情報を元に、瞬時にアクセスを許可するかどうかを判断しているのです。これは大きな会社で、部署ごとにアクセスできるフォルダが分かれている仕組みとよく似ています。
7. ディレクトリ(フォルダ)の権限は少し意味が違う
ファイルではなく、ディレクトリ(フォルダ)に対しての「rwx」は、少しだけ意味が異なります。ここが初心者がつまずきやすいポイントです。
- r (読み取り):ディレクトリ内のファイル名一覧を見ることができる。
- w (書き込み):ディレクトリ内に新しいファイルを作ったり、削除したりできる。
- x (実行):そのディレクトリに「移動(cd)」して中に入ることができる。
特に重要なのが「x」です。ディレクトリに実行権限(x)がないと、たとえ中身の一覧が見えても、その中に移動して作業することができません。フォルダは「場所」なので、そこに入るための「通行許可証」がx権限だと考えると分かりやすいでしょう。もし、あるフォルダにアクセスできない時は、このx権限がついているかを確認してみてください。
8. 権限を変更する「chmod」コマンドの使い方
パーミッションを変更したいときは、chmod(チェンジモード)というコマンドを使います。これは、ファイルやディレクトリの権限(モード)を変えるための命令です。例えば、自分で作ったスクリプトを実行できるようにしたい場合は、次のように打ちます。
chmod 755 script.sh
ls -l script.sh
-rwxr-xr-x 1 user1 group1 100 Jan 9 12:00 script.sh
また、数字を使わずに「自分(u)に実行権限(x)を加える(+)」という書き方もできます。chmod u+x ファイル名という書き方です。こちらの方が、今の設定を活かしたまま一部だけ変えられるので、間違いが少なく初心者にもおすすめです。コマンド一つで、そのファイルの「鍵の形」を自由に変えられるのがLinuxの面白いところですね。ただし、自分以外のファイルや、システムの重要なファイルの権限をむやみに変えると、パソコンが動かなくなることもあるので注意が必要です。
9. 最強の権限を持つ「rootユーザー」とは?
Linuxには、どんなパーミッション設定も無視して、あらゆる操作ができる特別なユーザーが存在します。それがroot(ルート)ユーザーです。別名「スーパーユーザー」とも呼ばれます。システムの修理や新しいソフトのインストールなど、一般ユーザーでは権限がなくてできない作業を行う時に使います。初心者のうちは、よく「permission denied(権限がありません)」と言われたら、コマンドの前にsudoをつけることで、一時的にこの最強権限を借りて実行することがあります。
chmod 600 /etc/shadow
ls -l /etc/shadow
-rw------- 1 root root 1500 Jan 9 13:00 /etc/shadow
この「root」は例えるなら「建物のすべてのマスターキーを持っている管理人さん」です。何でもできる反面、一歩間違えるとシステムを破壊してしまう危険もあります。普段は一般ユーザーとして活動し、どうしても必要な時だけsudoで権限を借りるのが、Linuxを安全に使うための鉄則です。root権限の強さを知ることで、なぜ普段のパーミッション設定がこれほど厳格に守られているのかが理解できるはずです。
10. 所有者やグループを変更する「chown」コマンド
最後に、ファイルの持ち主そのものを変える方法についても触れておきましょう。それにはchown(チェンジオーナー)コマンドを使います。これは、ファイルの所有権を別のユーザーに譲る時に使います。この操作は非常に強力なため、通常はroot権限(sudo)を使って行います。
sudo chown user2:group2 memo.txt
ls -l memo.txt
-rw-r--r-- 1 user2 group2 123 Jan 9 14:00 memo.txt
このコマンドを使うことで、ファイルの「持ち主(ユーザー)」と「所属(グループ)」を一度に変更できます。例えば、退職した人のファイルを後任の担当者に引き継ぐ際などに使われます。パーミッション(rwx)が「何ができるか」を決めるルールなら、所有権(chown)は「誰がそのルールの対象になるか」を決めるものです。この両方を組み合わせて理解することで、Linuxのセキュリティの仕組みが完璧にマスターできるようになります。これであなたもLinuxの権限管理の第一歩を踏み出せましたね!