スクリプトの実行権限 - PHPプロ!Q&A掲示板

80

  • 0P

スクリプトの実行権限

質問日時 / 2006年7月12日 16:48    回答数 / 6件

Questioner:  takun  このエントリーをはてなブックマークに追加 

キーワード /

こんにちは。

早速ですが、PHPで作ったスクリプトを実行すると作成されるファイルなどがapacheユーザの権限で作成されています。これはapacheユーザで実行されているからだと思うのですが、出来ればそのスクリプトの所有者で実行したいです。

何か方法はありますでしょうか?よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01hummerPHPというよりapacheの質問だと思いますが、いくつか
┃┗A01-1takunhummerさんありがとうございます。apacheはapache2を
┣A02progressive>こんにちは。 > >早速ですが、PHPで作っ
┃┗A02-1takunprogressiveさん、PHPにはこんな関数があるんですね、
┗A03ito_yuhummerさんも書いてらっしゃいましたが、CGI版PHP+su
 ┗A03-1takunito_yuさん、枯れた技術というのは安心感があって良い

回答一覧

並び替え:

A01 満足
answererhummer [7月12日 18:45]

PHPというよりapacheの質問だと思いますが、いくつかのアプローチを。
apacheのバージョンが書いてないのでアレですがapache2を前提で。

1. phpをcgiで実行してSuEXECされたApacheで走らせる

2. 実行するphpファイルをsetuidして実行させる。これもCGIモードで。(FreeBSDだと、たぶんsetuidは安全の為に無視されますが)

3. apache2をマルチスレッドMPMで動作させてスクリプト実行領域のユーザを指定してしまう。
ただしあまりお勧めできない。
http://php.s3.to/man/faq.installation.html#faq.installation.apache2あたりを参照

CGIモードは動作が遅いという事ならばfastcgiでPHPを動かすのを検討してはいかがでしょうか。

私自身もこの問題にはかなり悩んで、結局apacheユーザで動作させとくのが一番安全という結論になりました。

この意見に回答する

ツリーへ TOPへ

A01-1
replyertakun [7月13日 11:40]

hummerさんありがとうございます。apacheはapache2を使っています。cgi版のPHPを使えばできるわけですね。早速試してみたいと思います、ありがとうございます。

この意見に回答する

ツリーへ TOPへ

A02 満足
answererprogressive [7月12日 18:48]

>こんにちは。
>
>早速ですが、PHPで作ったスクリプトを実行すると作成されるファイルなどがapacheユーザの権限で作成されています。これはapacheユーザで実行されているからだと思うのですが、出来ればそのスクリプトの所有者で実行したいです。
>
>何か方法はありますでしょうか?よろしくお願いします。

ファイル作成後に権限変更なら、
http://www.php.net/manual/ja/function.chown.php
こんな関数もありますね。

あんまり解決にならなそうですが、、

この意見に回答する

ツリーへ TOPへ

A02-1
replyertakun [7月13日 11:45]

progressiveさん、PHPにはこんな関数があるんですね、知りませんでした。ありがとうございます。

この意見に回答する

ツリーへ TOPへ

A03 満足
answererito_yu [7月12日 22:42]

hummerさんも書いてらっしゃいましたが、CGI版PHP+suEXECが現時点での最適解であると考えます。
理由は、どちらも比較的枯れた技術であることです。

この意見に回答する

ツリーへ TOPへ

A03-1
replyertakun [7月13日 11:48]

ito_yuさん、枯れた技術というのは安心感があって良いですね。CGI版PHP+suEXECで試してみたいと思います。ありがとうございます。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
負荷時のmysql_connect()エラー
 このエントリーをはてなブックマークに追加 
A
これはPHPというよりOSまたはMySQLのコミュニティで質問されたほうがいいと思います。 ぱっと思いついた範囲で記すと MySQL等のDBに「ある時点において同時に接続可能なクライアントの最大数」に制限があるよう...

>>続きを読む

今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)