第9回 パーミッション設定の重要性 - Linux入門講座
はたぴょん先生のLinux講座
Lecutures on PHP
第9回 パーミッション設定の重要性 (その1)
プロセスとプロセスが持つ権限
こんにちは、はたぴょんです。
みなさん、ゴールデンウィークはいかが過ごされましたか?私はあれこれと原稿に追われ、家から一歩も出ないままゴールデンウィークが終了してしまいました(涙)夏休みは欲しいなぁと、まだまだ先の予定を妄想していたりします。
さて、今回はちょっと難しい話かもしれません。テーマはパーミッションについてなのですが、なぜ重要かという点はLinuxが実行中のプログラムを管理する単位である「プロセス」や、「Apacheのしくみ」について少し触れなければならないからです。しかし、後々に必ず必要となる知識でもあるので、がんばって読み進めてみてください。
Linuxでは、実行中のプログラムはプロセスと呼ばれる単位で管理されます。例えば、ユーザがターミナルを立ち上げればターミナルのプログラムそのもの、そこからviを立ち上げればviのプログラムがメモリにロードされ実行されます。これらは全てプロセスという単位で管理されます。
実行中のプロセスはpsコマンドで確認できます。特に、psコマンドに「aux」という3つのオプションを付けることで実行中の全てのプロセスを一覧表示できます。

これらのプロセスはそれぞれ一定の権限を持っています。我々ユーザーがLinuxを利用する際に、認証をしアカウントに応じた権限が与えられるように、プロセスにもそれぞれ権限が与えられています。
プロセスが持つ権限もpsコマンドで確認することができます。先ほどのスクリーンショットの左側には「root」と表示されています。これは、これらのプロセスがrootユーザーの権限を持っていることを表します。
ここで、プロセス毎に権限が与えられている様子を確認するために、次のような操作を行ってみました。
一般ユーザーでターミナルを立ち上げ、そこからviを立ち上げます。同様にもうひとつターミナルを立ち上げ、そちらではrootユーザーに切り替えた状態でviを立ち上げます。この状態でpsコマンドでプロセスの状態を確認します。

全てのプロセスが表示させると、何が何だかわからないのでgrepコマンドでviに関する表示のみを得ています。2つのviのプロセスが表示されていますが、1つはKnoppix(一般)ユーザー、1つはrootユーザーで動作しているのがわかります。
通常、ユーザーのコマンド操作により起動されたプログラムは、そのユーザーの権限を引き継ぎます。しかし、バックグラウンドで動作するプログラムなどは独自の権限を持ち動作するものがあります。WebサーバソフトウェアであるApacheもそのようなプログラムの一種です。
Apacheが動作しているサーバで、psコマンドを使ってプロセスの状態を確認してみるとわかります。

設定によって異なりますが、デフォルトではApacheはapacheユーザーの権限で実行されています。
- 1
- 2





ページのトップへ


SQLインジェクション対策は時と場合で使う関数が変わります。その時にあったものを使いましょう。