• ベストアンサー

linux系OSでの、アプリケーションの権限について。

こんにちわ。linuxを利用してのサーバー公開を目指して勉強しています。 ファイルやディレクトリの権限について学んでいる中で疑問に思ったのですが、CGIなどのWEBアプリケーションや、tomcat、apache等のサーバーアプリケーションの実行権限(root、一般ユーザー)は、何に依存しているのでしょうか? 例えば、tomcatの起動スクリプトや本体のファイルがrootの所有であった場合、tomcatが行うファイルアクセス等もroot権限で行われるのでしょうか。それとも別にそれを記述するファイル等が存在しているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

実行させるユーザに依存。 サーバアプリなら一般的には専用ユーザを準備します。子プロセスならnobodyなどもありますね(Apacheならhttpd.confで指定)。 指定の仕方はアプリに依存します。 所有者とは関係ありません。単純に実行権限があればよいだけなので。 昔はrootで全て実行されていた時代もありましたが(確か)、プロセスをのっとられてしまうとroot権限をのっとられてしまうのと同じなのでユーザを分ける事になったかと。

Chicory
質問者

お礼

解答ありがとうございます。 なるほど。実行させるユーザによるのですね。 virtual pcを使い、Lan内に未公開サーバーを設置して色々練習もしているのですが、tomcatをrootでインストールしていいものか考え込んでいました。専用のユーザを作成して、インストールしてみようと思います。

Chicory
質問者

補足

すいません。お礼に書いた文章ですが、勘違いしていたようです。 実行させるユーザに依存するとのことなので、rootでインストールした後、実行権限を一般ユーザに与えるようにしようと思います。 ただ、自動起動の設定をした場合などはどのようになるのでしょうか?ntsysvなどはrootから起動するように思ったので。

その他の回答 (1)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.2

一般的に  どのサーバも起動直後は、root権限 で動いています。 その後、サーバソフトウェアは  自分のroot権限を一般ユーザ権限へと変更します。 (setuid(2), setgid(2)をcall) このroot権限から一般ユーザ権限への変更タイミングは サーバソフトウェアにより異なります。 また、その設定ファイルも サーバソフトウェアにより異なります。 一般的なLinuxOS上の話としては、以上です。

Chicory
質問者

お礼

解答ありがとうございます。お礼が大変遅れてしまって申し訳ありませんでした。

関連するQ&A

  • Linuxの権限管理

    こんにちは。 Windowsサーバの管理者をしています。 Linuxも興味があり、本を見たりなどしているのですが、権限管理について疑問が出てきたので質問させてください。 Windowsですと、あるフォルダに対して複数のアカウントを所有者(フルコントロール)権限を設定できますが、Linuxの場合はどうなりますか? 調べてみたところでは、グループを作ってそのグループに所有者権限を適用したいユーザーを入れてやれば解決するとは思うのですが、例えば、Linuxをファイルサーバとして公開するとして ユーザA~Fまでの6アカウントがある 共有ディレクトリとしてディレクトリ1~3まで用意 共有ディレクトリ1→ユーザーAとBに所有者権限 共有ディレクトリ2→ユーザーCとDに所有者権限 共有ディレクトリ3→ユーザーEとFに所有者権限 と所有者権限を設定したい場合は、 グループG1を作成してユーザーAとBを追加し、共有ディレクトリ1にグループG1を所有者権限設定 グループG2を作成してユーザーCとDを追加し、共有ディレクトリ2にグループG2を所有者権限設定 グループG3を作成してユーザーEとFを追加し、共有ディレクトリ3にグループG3を所有者権限設定 と、共有ディレクトリごとにグループを作らないと設定できないのでしょうか? 私が管理しているWindowsファイルサーバでは共有フォルダは山のようにあるのですが、Linuxでこれと同じような運用をするとなると膨大な数のグループを作成しないといけないのかな、と勝手にびっくりしていますが、どうなんでしょう?それか他にうまい方法でもあるのでしょうか? お教えいただけましたら幸いです。

  • Linuxでの権限変更

    XPで作成したCGIをLinuxの公開サーバに転送して実行させたいのですが、転送前にWindows上で実行権限の付与は可能ですか? また、どのようにできますか?

  • apacheユーザの実行権限設定はどうすれば良い?

    ■環境 ・Cent OS ■状況 ・所有者hogeのディレクトリxに対して、スクリプト経由(apacheユーザ権限)でchmodしようとすると、エラーになります ・スクリプト経由(apacheユーザ権限)でディレクトリ作成しようとしても、エラーになります ■質問 ・どうすれば良いでしょうか? ・所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか? ・ディレクトリ所有者がhogeであることが問題? apache所有にした方が良い? ・それとも、スクリプト実行を、apacheユーザ権限ではなく、所有者hogeにした方が良い? どうやって? ・そもそもapacheユーザ権限は、一般的にどう設定するものなのでしょうか? rootみたいに最強にする?

  • linux上にあるroot権限のファイルを取ってくる

    表現の仕方が正しいのか分かりませんが linuxサーバー上にあるファイル(root権限)を リモート接続によって、作業を行うWindowsマシンに ダウンロードしてくるにはどうしたらいいでしょうか。

  • Apache2 - CGIで出力されたファイルの所有者を変更するには?

    Gentoo LinuxでApache2を動かしています。 Apache2の質問です。 UserDirで実行された(mod_userdirで処理される)CGIまたはPHPスクリプトが出力するファイル/ディレクトリの所有者を、リクエストされたユーザディレクトリのuid, gid へ自動的に変更する方法を教えてください。 レンタルサーバーではこのような動作を見掛けるし一般的だと思うのですが設定方法がわかりません。 よろしくお願いします。

  • Webアプリケーションのアクセス権ついて

    Webアプリケーションを開発しています。そのなかでユーザのアクセス権について悩んでいます。 開発環境: OS: Linux Webserver: Apache2.2 Tomcat5 クライアントPCよりサーバ内のディレクトリに対してアクセスする時に、セキュリティ上の観点よりユーザによりアクセスできるディレクトリを制限したいと思っております。ディレクトリについてはパーミッションで制限するのだと思いますが、クライアントPCからのユーザをどのように設定するのか解りません。 ご教授願えればと思います。よろしくお願いいたします。

  • LINUXについて質問です。

    現在、レンタル中のVPSでvsftpdを使ってFTPサーバをつくっています。 ただroot権限でのFTP接続は問題ないのですが これを、例えば /usr/local/apache/htdocs というような感じでWEBサーバ上のドキュメントルート直下のみしかアクセスできない 用にしたいのです。 つまりFTPソフト上で上のディレクトリにさかのぼれないようにしたいのですが どうやったらいいのでしょうか? いろんなサイトをみて chroot_listとか 記載されたとおりにやっても 上位ディレクトリにアクセスできてしまします。 完全に/usr/local/apache/htdocs このディレクトリ以下だけにしかアクセスできないようにするにはどうしたらいのでしょうか? どうかご教授お願いします。現在、レンタル中のVPSでvsftpdを使ってFTPサーバをつくっています。 ただroot権限でのFTP接続は問題ないのですが

  • Linux系ユーザー権限について

    Centos6でApacheによるWebサーバーを構築していますが、Wordpressなどを使用している際にユーザーフォルダー内の権限がApacheになってしまいユーザーから削除も変更も出来なくなってしまいます。 もちろんrootユーザーなら操作できるのですが、一般ユーザーでも自分のフォルダー内は自分で変更で出来るようにしたいので。 ご存知の方、ご教授お願い致します。

  • CGIスクリプト 保存用ディレクトリ

    ApacheというWWWサーバーでは、srm.confというファイル内に  ScriptAlias /cgi-bin/ /usr/local/www/cgi-bin/と記述し、かつaccess.confというファイル内に、 <Directory /usr/local/www/cgi-bin> </Directory> という記述を行うことで、/usr/local/www/cgi-bin/というディレクトリがそのCGIスクリプトの保存用ディレクトリになります。 と書いているのですが、どういうことかよくわかりません。srm.confというファイルはあらかじめ、パソコンにはいっているのでしょうか? ScriptAlias /cgi-bin/ /usr/local/www/cgi-bin/と記述しと書いているのですが、何で記述したらいいのでしょうか。 すいませんが、教えてください。

  • Apacheでディレクトリにアクセス出来ない

    Linux初心者です。 Fadora10でApacheを動作させたいのですが、ディレクトリにアクセス権の設定がうまく出来ていないようで、アクセスすることが出来ません。 httpd.confに以下の記述をして、/httpRootをApache用のディレクトリにしたいと考えています。 Alias /test "/httpRoot" /httpRootのアクセス権を "ls -l"コマンドで確認したところ、"drwxrwxrwx"になっています。 当初root権限でディレクトリを作成したため、所有者がrootになっており、それが問題なのかも?、と思い、所有者は現在はrootではありません。 尚、/httpRootはsambaとvsftpdからも読み書きできるようにしたいと考えています。