[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[kagemai-users:0342] Re: コンフィグファイルとsafe



えとーです。
遅くなってすいません。

On Mon, 06 Dec 2004 10:07:44 +0900
FUKUOKA Tomoyuki <fukuoka@xxxxxxxxxxxxx> wrote:

> 福岡です。
> 
> Eto Yasuo san wrote:
> 
> | rootユーザがパッケージインストールし、各一般ユーザが使いたい
> | それぞれのディレクトリで別々の影舞を動かしてたい。
> | virtual hostでのセットアップとかもこれで楽にしたい。
> (snip)
> | どーしても「kagemai.conf」を読み込ませるところでハマっています。
> | ちょっとだけ追ってみますと、safe-modeという仕組みでownerが違う場合は
> | includeとかloadとかできないようになっているようでした。
> | apacheの実行者と別のユーザからでもkagemai.confを読めるようにするには
> | ソースをいじってsafeモードを一部で緩めるしかなさそうでした。
> | どのようにしたらよいかわからなくなったので解決策がありましたら、
> | 教えていただけると嬉しいです。
> 
> よく把握できないのですが、
すいません、プログラミングほとんどできないので、的確なメール書くのが
困難だったりします。

> kagemai.conf の owner やパーミッション、
> guest.cgi を動かす ruby プロセスの権限はどうなっているんでしょうか。

kagemai.conf の owner は、setup-kagemai を実行したユーザとなりますので、
基本的には apache などを動かしているユーザでも superuser でもない一般ユーザ
となります。パーミッションはどうとでもなるのですが、とりあえず777にしてみました。
本当は777とか嫌なのですが、とりあえず、、、

> あと、発生するエラーとスタックトレースもみせてもらえませんか。

了解です!
スタックトレースの部分はちょっとよくわかりませんでした。。。

admin.cgi から kagemai.conf を変更し「設定を変更」ボタンを押した時に出る
apache2のエラーログを張り付けたいと思います。

kagemai.conf があるディレクトリ /home/hoge/site/kagemai が 755 な場合。
--ここから--

[Sun Dec 12 00:35:01 2004] [error] [client 127.0.0.1] user admin: authentication
 failure for "/kagemai/admin.cgi": Password Mismatch, referer: http://localhost/kagemai/
/usr/share/kagemai//lib/kagemai/sharedfile.rb:76:in `initialize': Permission 
 denied - /home/hoge/site/kagemai/kagemai.conf~ (Errno::EACCES)
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:76:in `open'
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:76:in `write_open'
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:70:in `open'
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:70:in `write_open'
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:68:in `sync'
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:46:in `synchronize'
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:46:in `sync'
        from /usr/share/kagemai//lib/kagemai/sharedfile.rb:68:in `write_open'
        from /usr/share/kagemai//lib/kagemai/cgi/action/config_env.rb:87:in `con                                                      fig_env'
        from /usr/share/kagemai//lib/kagemai/cgi/action/config_env.rb:46:in `sen                                                      d'
        from /usr/share/kagemai//lib/kagemai/cgi/action/config_env.rb:46:in `exe                                                      cute'
        from /usr/share/kagemai//lib/kagemai/kagemai.rb:77:in `action'
        from ./guest.cgi:80:in `execute'
--ここまで--
apahe2のユーザである、www-dataに書き込み権限がないので当然のように書き込めないと
エラーがでます。


kagemai.conf があるディレクトリ /home/hoge/site/kagemai が 777 な場合。
--ここから--
[Sun Dec 12 01:48:45 2004] [error] [client 127.0.0.1] Premature end of script headers: admin.cgi, referer: http://localhost/kagemai/admin.cgi?action=config_env&s=0
./guest.cgi:45: warning: Insecure world writable dir /home/yasuo/site/kagemai/., mode 040777
./guest.cgi:45:in `require': loading from unsafe path /usr/share/kagemai//lib:/usr/local/lib/site_ruby/1.8:/usr/local/lib/site_ruby/1.8/i386-linux:/usr/local/lib/site_ruby:/usr/lib/ruby/1.8:/usr/lib/ruby/1.8/i386-linux:. (SecurityError)
        from ./guest.cgi:45
        from admin.cgi:7:in `load'
        from admin.cgi:7
--ここまで--
と、セキュリティエラーが出ます。

> 書いてあることから想像すると、suExec は有効になっていなくて、ruby は
> apache と同じ権限で動いていて、kagemai.conf は各ユーザが owner、
> ということだと思うんですが、条件がそれだけなら動きそうです。

うーん、そんな感じで動けばいいなぁ〜と思っています。
そちらではできているのですね。どこか間違っているのかぁ、、、

> 少なくとも手元にある Fedora Core 3 では、そんな感じでも動くので、
> もっと条件を特定しないとだめかもしれません。
> 
> -- 
> 福岡ともゆき <fukuoka@xxxxxxxxxxxxx>
> http://www.daifukuya.com/
>