セキュリティ上の理由から、一部のアプリケーションはchroot環境で隔離されています。このアプリケーションをPHPスクリプトで呼び出す必要があります。そのような何か:PHPでchrootを呼び出す
exec('chroot /path/to/chroot command')
私はchroot
を使用するためのroot
する必要があります。 PHPマニュアルにはchroot()がありますが、この機能にはroot権限も必要です。
PHPのchroot
edコマンドの使い方は?
セキュリティ上の理由から、一部のアプリケーションはchroot環境で隔離されています。このアプリケーションをPHPスクリプトで呼び出す必要があります。そのような何か:PHPでchrootを呼び出す
exec('chroot /path/to/chroot command')
私はchroot
を使用するためのroot
する必要があります。 PHPマニュアルにはchroot()がありますが、この機能にはroot権限も必要です。
PHPのchroot
edコマンドの使い方は?
chroot
は、特権ユーザーによってのみ呼び出すことができます。そうしないと、通常のユーザーは、passwd
やsudo
などのsetuidアプリケーションを突っ込んで、予期しない場所にあるファイルにアクセスする可能性があります。
したがって、PHPアプリケーションがrootで実行されていない場合は、setuidラッパースクリプトを設定してphpから呼び出すことができます。ルートがtrivially break out of chrootsのように、chrootを呼び出した後すぐに権限を落とすべきです。
また、phpユーザがchroot /path/to/chroot command
を実行し、exec
コールの前にsudo
を追加するようにsudoを設定することもできます。
ここでは、sudoを使用し、sudoersファイルはsudo manpageを参照してください。あなたは、Linuxの機能を使用することができます
exec('sudo chroot /path/to/chroot command')
:
は基本的にあなたがどうなるのかchroot
コマンドのsudo
ユーティリティへのPHPのユーザーアクセスを与え、あなたのコードは次のようになりますです。 man capabilities
のCAP_SYS_CHROOT機能を参照してください。
警告! sudoを使うと、chrootした後にrootです!
私にとって、これはセキュリティを実現する良い方法のようには思えません。あなたがしようとしていることについてもう少し説明してもらえますか、それを行うための他の方法があるかもしれませんか? –
私はラテックスの式に対応するpngファイルを生成するために、pdflatexとimagemagickを実行する必要があります。問題は、いくつかの悪質なラテックスコードでシステムファイルへのアクセスを防止する必要があることです。だから私はchrootにラテックスをインストールし、私はPHPを介してそれを呼び出す。 –
音が怖い、幸運:) –