1

セキュリティ上の理由から、一部のアプリケーションは chroot 環境で分離されています。PHP スクリプトを介してこのアプリケーションを呼び出す必要があります。そんな感じ :

exec('chroot /path/to/chroot command')

rootを使用する必要がありますchroot。PHP マニュアルには chroot() がありますが、この関数にも root 権限が必要です

chrootでは、 PHP で ed コマンドを使用するにはどうすればよいでしょうか。

4

3 に答える 3

2

Linux 機能を使用できます。の CAP_SYS_CHROOT 機能を参照してくださいman capabilities

警告!sudo を使用すると、chroot 後に root になります。

于 2013-01-14T22:13:00.833 に答える
2

chroot特権ユーザーのみが呼び出すことができます。passwdそうしないと、通常のユーザーがやなどの setuid アプリケーションをだましsudoて、予期しない場所にあるファイルにアクセスさせる可能性があります。

したがって、php アプリケーションが root として実行されていない場合、できることの 1 つはsetuidラッパー スクリプトをセットアップし、それを php から呼び出すことです。rootは chroots から自明に抜け出すことができるため、chroot を呼び出した後はすぐに権限を削除する必要があります。

または、sudo を構成して、php ユーザーが実行し、phpの呼び出しにchroot /path/to/chroot command追加できるようにすることもできます。sudoexec

于 2011-06-26T19:27:48.927 に答える
0

ここでの秘訣は、sudo を使用することです。sudoers ファイルについては、sudo manpageを参照してください。

基本的に、PHP ユーザーにコマンドのsudoユーティリティへのアクセスを許可するchrootと、コードは次のようになります。

exec('sudo chroot /path/to/chroot command')
于 2011-06-26T19:30:24.160 に答える