Apacheユーザの実行権限設定方法

このQ&Aのポイント
  • Apacheユーザの実行権限設定について知りたいです。
  • 所有者hogeのディレクトリをApacheユーザ権限で操作する際にエラーが発生します。解決方法を教えてください。
  • Apacheユーザ権限の一般的な設定方法について知りたいです。
回答を見る
  • ベストアンサー

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

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

  • re97
  • お礼率80% (601/744)

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

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.3

> 所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか? 基本的にはそれでOKですが、それだけではapacheユーザが作成した ファイルをhogeユーザが変更できなくなってしまうかもしれません。 user=hoge,group=hoge user=apache,group=apache,groups=hoge groupは一次グループ、groups2は二次グループです。umask002 (新 規作成されたファイルのパーミッションが775 ) に設定されている とします。 hogeユーザが作成したファイルはhoge/hoge なので、hogeグループ に属するapacheユーザは編集可能です。しかし、apacheユーザが新 規作成したファイルはapache/apache になるので、apacheグループ に属さないhogeユーザは編集できません。 そこで、ディレクトリをhogeユーザで作成し、ディレクトリにsgid ビットを立てます。 $ chmod 2775 dir $ ls -l dir drwxrwsr-x 2 hoge hoge 4096 4月 7 13:35 dir これで、apacheユーザがdir上に作成したファイルはapache/apache ではなく、apache/hoge になるので、hogeユーザも編集できるよう になります。

re97
質問者

補足

回答ありがとうございました >user=apache,group=apache,groups=hoge >groupは一次グループ、groups2は二次グループ ・上記の「groups=hoge」と「groups2は二次グループ」の所が理解できません ・「groups2」ではなく「groupsは二次グループ」? ・あるいは、「user=apache,group=apache,groups2=hoge」?

その他の回答 (2)

回答No.2

>・一般的には、に書かれている3つは、それぞれ個別に行うのでしょうか? はい。 >・例えば、「ディレクトリのグループにapacheユーザを追加する」=「ディレクトリの権限をapacheユーザが書き込めるよう変更する」でしょうか? それとも両者は同じ意味ではない? それぞれの作業の持つ意味は全く異なります。 前者のコマンドはusermod(下の質問のコマンド)、 後者のコマンドはchmodを使います。 >・ディレクトリのグループがhogeだった場合、下記コマンドで合っているでしょうか? usermod -G hoge apache 上記コマンドは「apacheというユーザをhogeというグループに追加する」作業になります。 それを意図しているなら合っています。 確認ですが、そもそもそのディレクトリにグループの書き込み権限はあるんですよね?

回答No.1

>・そもそもapacheユーザ権限は、一般的にどう設定するものなのでしょうか? rootみたいに最強にする? もともと親プロセスはroot権限で起動しているはずですが、それが作成する子プロセスをroot権限で動かすのは大変危険です。それを理解した上で、必要ならそうすることも無いとは言えませんが(ブラウザからシステム管理を行う場合等)。 従いまして、一般的には ・ディレクトリの権限をapacheユーザが書き込めるよう変更する ・ディレクトリのグループにapacheユーザを追加する ・SuExecを使用する で対応します。 それぞれのメリットデメリットについては検索して調べてみてください。 どれを選択するかはその他の条件にもよりますので一概には言えません。

re97
質問者

補足

回答ありがとうございました。 ・一般的には、に書かれている3つは、それぞれ個別に行うのでしょうか? ・例えば、「ディレクトリのグループにapacheユーザを追加する」=「ディレクトリの権限をapacheユーザが書き込めるよう変更する」でしょうか? それとも両者は同じ意味ではない? ・ディレクトリのグループがhogeだった場合、下記コマンドで合っているでしょうか? usermod -G hoge apache

関連するQ&A

  • Apacheの実行権限について

    Apacheがユーザーディレクトリに、ディレクトリを作成したり画像を(アップロードして)作成したりする場合、以下のように設定していますができません。 httpd(子プロセス)の実行ユーザー/グループはそれぞれapacheです。 親プロセスはrootになっています。 以下のディレクトリは次のようになっています。 (ドキュメントルートはwordpressです) /var/www/html/projectName/wordpress/wp-content/uploads drwxrwxr-x(775) owner=yamada group=apache このように、group(apache)に書き込み権限を与えているのですが、uploads以下にディレクトリやファイルの作成ができません。このディレクトリのownerをapacheにするとできるようになります。 apacheユーザーはapacheグループに属しているので、書き込み権限(w)をもってディレクトリの作成やファイルの作成ができるはず、という認識だったのですがなぜかできません。私の認識が間違っているのでしょうか。

  • ユーザ権限でapacheの停止ができない。

    OSはfedora core6を使用しています。 tomcatとapacheをmod_jkで連携しています。 連携を問題なくできているのですが、Windowsからtelnetを使い、一般ユーザでログインし、 "apachectl stop"と入力してapacheを停止させようとすると httpd (pid ****?) not running とエラーが帰ってきます。 root権限では問題なく停止します。 (apache配下はchgrpとchmodで権限を得ています。) 現状は自動スクリプトを/etc/rc.d/init.d/配下にtomcatとhttpdを作り、端末起動時に動く設定にしています。 皆さんのお知恵をお借りしたく思います。 よろしくお願いします。

  • apache + svn での実行ユーザ

    リポジトリーをsvn + apache + sslで構築しております。 構築作業を完了しチェックアウトおよびブラウザからの確認まではできるようになったのですが、コミット時に以下のエラーがはかれてしまいます。 svn: Commit failed (details follow): svn: Commit failed (details follow): svn: Can't create directory '/var/lib/svnprj/*****/db/transactions/1-1.txn': Permission denied svn: MKACTIVITY of '/svn/*****/!svn/act/90df1d5c-1a01-0010-8e67-11194141f511': 500 Internal Server Error (https://www.********.co.jp) 権限の問題でディレクトリを作る権限が実行ユーザにないのが原因と思いますが、該当の権限は以下のようになっておりました。 drwxr-sr-x 7 apache apache 4096 Jun 2 12:49 ***** svnをapache経由で操作した場合はapacheアカウントで実行すると 思っているのですが、ちがうのでしょうか。 --------- ちなみに該当のディレクトリを chmod -R 777 ***** にするとコミットすることが可能になりました。

  • linux権限について

    CentOS5系を使用しています。 あるディレクトリ(下記のような権限を持つディレクトリ) の配下でのみrootと同様の権限を持つユーザを作成したいと思っています。 drwxr-xr-x 15 root root ディレクトリ名⇒Hoge グループの権限はrwxにしても良いと考えていますが、 useraddで新規ユーザを作成して usermod -Gでrootグループにユーザを追加してしまうと そのユーザは他のディレクトリでもrootと同様の権限を持てることとなってしまいます。 あくまでHogeディレクトリ配下でのみrootユーザと同様の権限を持たせたいと思っています。 どなたか知恵をお貸しください。

  • php実行権限以外でのディレクトリ(ファイル)作成方法

    webからphpを起動し、ディレクトリを作る場合、 phpが実行された権限ではない権限で作ることはできますか? 所有者がapacheとなるディレクトリを作りたいのです。 試してみたこと。 ・mkdirでディレクトリ作成後、chownで所有者変更が出来ればいいのですが、 root権限で動いているわけではないので無理でした。 ・シェルを作って、シェルの所有者をapacheにしてphpからコマンドラインで シェルを呼び出してみましたが所有者apacheで作られません。

    • ベストアンサー
    • PHP
  • FTPでapacheドキュメントルートへ転送できない?

    RHL7.0で、apacheをインストールしました。 そのドキュメントルート(デフォルトの/var/www/html配下)にwindowsPCからFTPであるユーザでログインし、アップロードを試みたのですが、できません。 下記の事もしてみました。 (1)apacheドキュメントルートのファイル所有者をあるグループに全て変更  chgrp -R グループ名 /var/www (2)ドキュメントルートのディレクトリ/var/wwwのパーミッション変更  chmod 2775 /var/www(これでwwwはdwxdwsr-xとなった) (3)ドキュメントルートへFTPログインでアップロードするユーザを、(1)のグループへ加える。 このユーザ名でFTPログインできますが、/var/www/html/index.htmlを変更しようとすると fxfer、アクセス件がありません、と出ます。 (2)の事は本に書いてあった事をそのまま実行したのですが、-Rオプションも付けるべきなのでしょうか? chmod 2775 /var/www/htmlとすべきなのでしょうか? 細かく考えすぎなのでしょうか? すみませんが宜しくお願いします。

  • linux(fedora)root権限の設定

    お世話になります。 fedoraを使用している際、 rootで読み取れないフォルダができているのに気付きました。 システムファイル等ではなく、一般のファイルです。 どこでできたかわかりませんが、ソフトが自動生成したもののようです。 パーミッションは -wxr----tで、 rootで、コンソールから chmod -t <ディレクトリ名>や chmod -R 755 <ディレクトリ名> しても、許可されていない操作です。 権限がありません、等でどうにもなりません。 -wxですと、読み取り不可かと思いますが、 rootでも、強制的にディレクトリのパーミッションを 変更することはできないのでしょうか。 windowsでは所有権をリセットして・・・という手がありますが linuxではそのようなものはないでしょうか。 よろしくお願いします。

  • 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環境におけるユーザー自身のアクセス権限について質問があります。 例えば、ユーザーはtest1、test2、test3が作成されておりまして、 homeディレクトリの配下には、test1、test2、test3のディレクトリがある状態を仮定します。 test3は、自分自身のホームディレクトリである「/home/test3」には当然アクセス可能ですが、 その他のアクセス権限として、 「home/test1/」 と 「home/test1/testdir」にはアクセス可能で、 その他のディレクトリへはアクセス出来ないように設定したいのです。 ぐぐって調査しましたが、 chmodなどのディレクトリベースでの権限設定が殆どでして、 ユーザーベースでの権限設定などが発見できず困っております。 よろしくお願いいたします。

  • apache2でユーザーディレクトリが

    apache2でユーザーディレクトリを使いたいんですが ただのapacheではデフォルトでユーザーディレクトリがつかえるんですが 403でパーミッションを直して使えて apache2でいろいろ apache2.confなどにuserdir.cなどのモジュールを読み込ませたり sites-avalias/defaultに /home/*/public_htmlなど試してみたいんですが ダメみたいです ちょっと省略していますが ちなみにバージョンはApache/2.2.3です エラーは http://xxxxx/~ユーザー名 にアクセスすると 403ではなく404エラー フォルダが無いということは sites-avalias/defaultかapache2.confの設定がおかしいんでしょうか? ちゃんと /home/xxxx/public_htmlも作ってありますし パーミッションもあっています しかし <Directory /home/xxx/public_html>などの設定をしたいんですが sites-avalis/defaultに書くのか それともapache2.confに書くのかまぎらわしくて defaultのほうには<Directory /var/www>など書いてあって apache2.confにはmoduleなどいろいろ書いてあります apache2がhttpd.confではなくてまぎらわしくてよくわかりません それとバージョンなど古かったりなど違ったりして できないみたいです Apache/2.2.3でユーザーディレクトリを使っているかた 詳しく教えて下さいお願いします