1

ドキュメントルートの上のディレクトリにアクセスするshell_exec()コマンドがあるので、それを実現するには「ルートとして」sudoを使用する必要があります。(私はセキュリティの問題を理解しており、それに対処するための対策を講じています)。

問題は、実行するshell_exec()と、apache error_logファイルに「sudo:must besetuidroot」エラーが発生することです。

解決策は、自分が呼び出したbashスクリプトをchmod 4750にすることだと思いましたが、それではうまくいきsheel_exec()ません。

「sudo:setuid rootでなければならない」とは正確には何を教えてくれますか?また、どのように解決すればよいですか?

4

4 に答える 4

2

sudo実行可能ファイル自体はsetuidrootですか?あなたはする必要があるかもしれません

chown root: /usr/bin/sudo
chmod u+s /usr/bin/sudo
于 2010-02-09T16:26:46.580 に答える
1

sudoまたは、完全にスキップします。スクリプトがrootによって所有されており、独自のsetuidビットが設定されている場合は、root権限を取得するためにsudoを使用する必要はありません。実際、そうすればより安全になります。Webユーザーがsudoerを編集せずに、そのスクリプトのみを使用できることを保証します。これを行うには、行からsudoを削除します。shell_exec()

<?php
    shell_exec('/path/to/your/command');
?>
于 2010-02-11T16:15:44.470 に答える
0

この問題を修正するには、以下のようにrootとしてsudoファイルをchownおよびchmodする必要があります。

chown root:root /usr/bin/sudo
chmod 4111 /usr/bin/sudo
chmod 0440 /etc/sudoers
于 2012-10-31T09:27:33.787 に答える
0

スクリプトの権限を確認しましたか?

スクリプトの所有者は誰ですか?

Webユーザーにはsudoの権限がありますか?

于 2010-02-09T16:14:59.410 に答える