- PR -

Apacheのユーザなの?

1
投稿者投稿内容
Folly
常連さん
会議室デビュー日: 2003/09/12
投稿数: 22
投稿日時: 2004-05-31 15:57
自宅でWeb Serverを構築している方に特にお聴きしたいのですが、
コンテンツ作成ユーザとapacheのユーザは別々ですよね?

いま私が悩んでいるのは自宅で立てているWeb Serverはほぼ個人オンリーでの
使用ということになっているのですが、コンテンツを作成するユーザは
自分の普段使用するユーザです。
ところが、実行権限の問題などがあるのかapacheの実行ユーザであるwww
でないと動かない物がでてきますよね?(ココが間違い??)

そういったときに自分のアカウントをwwwグループに含めるなどの
対応を取っても結局パーミッションではグループを変更しなくてはならないし、
wwwユーザ所有になっているファイルをさわることが出来ません。

私は通常ユーザでftp接続してコンテンツ管理をしたいので、出来れば
apacheのユーザ=自分で普段使っているユーザ のような設定がよいのです。
が、apacheの実行ユーザとは通常logon出来ないユーザであるべきだということも
かなり気になるところです。

皆さんはログオンできないアカウントで実行しているWeb Serverにアップする
コンテンツをどのように管理していらっしゃるのですか?
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-05-31 19:51
apache のデーモンのオーナーは apacheですが、コンテンツはユーザーが管理
するものでしょうから、特に今の所困ってません。

chgrp と chmod で何とかなってます。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-05-31 21:02
こんばんわ.

コブラ様,ついて回ってゴメンナサイ.

www と同じ group に contents 管理 user を加えるとか.
Uta
常連さん
会議室デビュー日: 2004/05/17
投稿数: 37
投稿日時: 2004-05-31 23:36
Apacheの実行ユーザが「通常logon出来ないユーザであるべき」と言われるのは、
Apacheに何らかの脆弱性がみつかってプロセスが乗っ取られた際に、
クラッカーに不正なシェル操作を簡単にはさせないため、です。

それを理解した上でApacheユーザにログインシェルを持たせるならそれはそれで
構わないとは思います。あくまでAdminの考え方次第です。



が、Follyさんの投稿に
>自分のアカウントをwwwグループに含めるなどの対応を取っても
>結局パーミッションではグループを変更しなくてはならない
とありますがCGIやらなんやらを動作させるには
どちらにしろパーミッションの変更は必須になってきますし、
その必要の無い静的ファイルだとしたら
「apacheの実行ユーザであるwwwでないと動かない物がでてきます」
の部分が??となります。

どういう状況で、どんなファイルがwwwの権利を持っている必要があるのか
差し支えない範囲で書いて頂ければもう少し細かいアドバイスもつくかもしれません。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-06-01 00:26
自分のディレクトリのパーミッションを700にして誰も入って来れないようにしたいということでしょうか?

もしそういうことであれば、全ての一般ユーザを同じグループに入れて、ディレクトリのパーミッションを705にすると、一般ユーザは互いに他人のディレクトリには入れなくすることはできます。

個人用サーバということのようですし、かなり的を外しているような気はしますが・・・。
Folly
常連さん
会議室デビュー日: 2003/09/12
投稿数: 22
投稿日時: 2004-06-01 09:08
皆さん、ありがとうございます。
Utaさんの言われるように、wwwでないと動かない物が出てくる。
の部分が確かに?ではあるのです。

以前ServerのDocumentRootを普段から使用しているコンテンツ作成ユーザの
"/home/hogohoge/www/"などにしたときに確かPHPやらがエラーを起こしたと記憶しています。
これって書き込みが許可になっていないことなどが原因なのかなとおもい、
今回のような想像に至ったわけです。
だって、ディレクトリ作ったときのdefaultって755ですよね?たぶん変えられるんでしょうけど。。。

kazさんが言われる方法をとるとなるとすべて775などにするのでしょうか。764とか?

DocumentRootをwww所有の物にして775、
中身はすべてコンテンツ作成ユーザ所有のデータで支障がないというのが事実なら
それで問題ないのですよね。

恥ずかしながらapacheの動作に関して知識が乏しくて・・・apacheに対してだけじゃないですが。
Uta
常連さん
会議室デビュー日: 2004/05/17
投稿数: 37
投稿日時: 2004-06-01 10:57
PHPに関しては全く経験がありませんので有益な返答はできませんが、
PHPのみでエラーが発生するのだとしたら、
PHPの設置にもパーミッションの変更が必要になるのではないでしょうか。
Apacheの設定というよりはそちらに原因が潜んでいる可能性が高いような
気がしてなりません。


ちなみに、ディレクトリ作成時に付与されるデフォルトのパーミッションは
bashの組み込みコマンドであるumaskによって設定可能です。
$ umask
と入力すると現在のumask値が表示されます。
恐らく[0022]と表示されると思います。
$ umask 0066
等と入力するとumask値を更新します。

umask値の意味は以下の通りです。
・ディレクトリの場合
 0777 - [umask値]がデフォルトのパーミッションとなる
 0777 - 0022 = 0755
・ファイルの場合
 0666 - [umask値]がデフォルトのパーミッションとなる
 0666 - 0022 = 0644

但し、例外として useradd コマンドでユーザを作成した際に
一緒にユーザのホームディレクトリを作成すると、
そのディレクトリのパーミッションは0700になります。

[ メッセージ編集済み 編集者: Uta 編集日時 2004-06-01 10:58 ]
Folly
常連さん
会議室デビュー日: 2003/09/12
投稿数: 22
投稿日時: 2004-06-01 11:16
Utaさん
ありがとうございます。
umask
大変勉強になりました。
私も幸いbashですので。
以前はtcsh(FreeBSDで)だったのですが、自宅サーバをあげてからbashを使っているため、今ではbashになれてきました。
どの辺が違うのかという認識は浅いですけど(汗

いっぺんwww所有のディレクトリをDocumentRootとし、パーミッション775。
wwwグループに入れたコンテンツ作成ユーザでの作業。
という形を取ってあれこれ使ってみたいと思います。
Perlのcgiとか、PHPの掲示板とか、xoopsとか動かしてみればどこが問題なのか
もっとはっきりすると思いますので。

今後とも宜しくお願いします。m(__)m
1

スキルアップ/キャリアアップ(JOB@IT)