現場でLinuxの権限トラブルに強くなるためには?

HOMEリナックスマスター.JP 公式ブログ > > 現場でLinuxの権限トラブルに強くなるためには?
リナックスマスター.JPの宮崎智広です。
いつもありがとうございます。

Linuxにおいてファイルのアクセス権限は、とても大切な基本スキルです。

あなたも下記のようなコマンドを見たことがあるのではないでしょうか。

$ chmod 755 file.txt
$ chown user:group file.txt


現場で仕事をしていると

「パーミッションは合ってるはず…だけど、なぜか処理が失敗する」
「chmodしてるのに、動作が変わらない」
「ファイル共有の設定が思った通りに動いてくれない」


といったトラブルに出くわすことがあります。
今回は、「コマンドの使い方」と「権限の本質的な考え方」などをご紹介します。

■パーミッションの3桁表示について

下記のような表示を見たことはありませんか?

-rw-r--r-- 1 user group 1234 Jan 1 00:00 file.txt


上記の「-rw-r--r--」の部分が、Linuxのアクセス権限を表しています。

・最初の文字(-):ファイル種別(-は通常ファイル、dはディレクトリ)
・1桁目(rw-):オーナー(user)の権限
・2桁目(r--):グループの権限
・3桁目(r--):その他(other)の権限


これを数字で表すと、rw- = 6、r-- = 4、r-- = 4 → 644 になります。
つまり、chmod 644 file.txtとすれば同じ設定になります。

■ 実務でつまずく権限設定あるある
1.ディレクトリの実行権限(x)が抜けている
ディレクトリの権限には、ファイルとは違った意味があります。

・r:中のファイル名を「読む」ことができる
・w:中のファイルを作成・削除できる
・x:そのディレクトリに「入る」ことができる(=アクセス権)

つまり、lsで一覧は見られるのに、cdできないというような状況もありえます。

対策としては、ディレクトリに必ず実行権限(x)を付けるよう意識します。
例:chmod 755 /path/to/dir

2.所有者とグループの「誰が実行するか」が考慮されていない
例えば、あるWebアプリが/var/www/htmlにファイルを書き込もうとしても、
その実行ユーザー(たとえばwww-dataやapache)が書き込み権限を持っていなければエラーになります。

そうならないためには、ps auxやsystemctl statusで
実際に動作するプロセスのユーザー(=実行主体)を確認します。

3.パーミッションを変えても「動作が変わらない」
「chmod 777したのにエラーが直らない!」
「所有者も合ってるのに…」

この場合、ACL(Access Control List)やSELinux/AppArmorが関係しているケースがあります。

たとえば、Ubuntuではsetfaclによって個別にアクセス権を追加できるため、
通常のchmodだけでは上書きされないことがあります。

また、RedHat系OSでSELinuxが有効になっている場合、ポリシー違反でブロックされることもあります。

ACLの有無はgetfaclで確認します。
SELinuxのステータスはsestatus、または/var/log/audit/audit.logをチェックします。
それでも不明なときは、/var/log/messagesやjournalctlの確認が必要になります。

■現場で権限トラブルに強くなるために
現場で権限トラブルに強くなるためには、以下の3つの視点を持つことが大切です。

1.「誰が」操作するかを明確にする
→ プロセスの実行ユーザー、SSHログインユーザーなどを意識する
→ 誰の権限でアクセスが発生するのかを明確にする

2.「どこに」アクセスしているかを正確に把握する
→ シンボリックリンクやマウントポイントの先に注意
→ 親ディレクトリにx権限があるかもチェック

3.「どの制御」が優先されているかを知る
→ chmod、chown、ACL、SELinuxなど、どの設定が実際のアクセスを制御しているかを理解する

Linuxにおけるファイル権限は、chmodとchownが基本になりますが、
現場では、次のような判断が日常的に求められます。

・「Webサービスが500エラーを返しているが、原因はパーミッションか?」
・「あるユーザーだけファイルにアクセスできないのはなぜか?」
・「セキュリティ的に最小権限で運用するには、どう設計すればよいか?」


こうした問題に冷静に対応できるようコマンドの意味を「暗記」するのではなく、
どう使うか「判断」できる力を育てましょう。
そうすることで、現場での権限トラブルに強くなれます。

P.S
現場で使えるLinux権限管理スキルを身につけるなら、
現場に沿った構築技術と環境を作るのが近道です。
手を動かしながら「現場の技術」が2日で身につきます。
いますぐご確認ください。
↓↓↓
現場で使えるLinux権限管理スキルを身につけるならこちら



P.S
現場でLinuxの権限トラブルに強くなるためには?をもっと理解したいなら、こちらがおすすめです。
👉いますぐ詳細を見る

P.P.S
「無料でLinuxサーバーが構築できます」0円で自由に使えるLinux環境を持ちませんか?
最新のAlmaLinux9で作る【Linuxサーバー構築入門マニュアル】を無料プレゼント中です。
👉ダウンロードはいますぐこちらをクリック


<<関連記事>>


  • この記事の属するカテゴリ:へ戻る