- ベストアンサー
linux系OSでの、アプリケーションの権限について。
こんにちわ。linuxを利用してのサーバー公開を目指して勉強しています。 ファイルやディレクトリの権限について学んでいる中で疑問に思ったのですが、CGIなどのWEBアプリケーションや、tomcat、apache等のサーバーアプリケーションの実行権限(root、一般ユーザー)は、何に依存しているのでしょうか? 例えば、tomcatの起動スクリプトや本体のファイルがrootの所有であった場合、tomcatが行うファイルアクセス等もroot権限で行われるのでしょうか。それとも別にそれを記述するファイル等が存在しているのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
実行させるユーザに依存。 サーバアプリなら一般的には専用ユーザを準備します。子プロセスならnobodyなどもありますね(Apacheならhttpd.confで指定)。 指定の仕方はアプリに依存します。 所有者とは関係ありません。単純に実行権限があればよいだけなので。 昔はrootで全て実行されていた時代もありましたが(確か)、プロセスをのっとられてしまうとroot権限をのっとられてしまうのと同じなのでユーザを分ける事になったかと。
その他の回答 (1)
- onosuke
- ベストアンサー率67% (310/456)
一般的に どのサーバも起動直後は、root権限 で動いています。 その後、サーバソフトウェアは 自分のroot権限を一般ユーザ権限へと変更します。 (setuid(2), setgid(2)をcall) このroot権限から一般ユーザ権限への変更タイミングは サーバソフトウェアにより異なります。 また、その設定ファイルも サーバソフトウェアにより異なります。 一般的なLinuxOS上の話としては、以上です。
お礼
解答ありがとうございます。お礼が大変遅れてしまって申し訳ありませんでした。
お礼
解答ありがとうございます。 なるほど。実行させるユーザによるのですね。 virtual pcを使い、Lan内に未公開サーバーを設置して色々練習もしているのですが、tomcatをrootでインストールしていいものか考え込んでいました。専用のユーザを作成して、インストールしてみようと思います。
補足
すいません。お礼に書いた文章ですが、勘違いしていたようです。 実行させるユーザに依存するとのことなので、rootでインストールした後、実行権限を一般ユーザに与えるようにしようと思います。 ただ、自動起動の設定をした場合などはどのようになるのでしょうか?ntsysvなどはrootから起動するように思ったので。