多くの権限(複数のディレクトリの読み取りと書き込み)を持つユーザーapacheで実行されるapacheがあります。これで、一部のユーザーがWebフォームを介してプログラム/スクリプトをアップロードし、exec()
ファイルのアップロードPHPページのPHP機能を使用して実行したいと考えています。しかし、私はこのプログラムがハードドライブに何も書くことを望んでいません。このプログラムが私に必要な機能を実行しているようですが、どのようにsudo
使用するのかわかりません。
簡単に言うと:強力なユーザーが読み取り専用モードでプログラムとスクリプトを実行する方法は?
重要な場合、私のシステムはCentos 6です。
答え1
そうですね。読み取り権限はあるが書き込み権限を持たないユーザーのsudoは、権限を付与したファイルに対する書き込み権限のみがあるかのようにコマンドを実行します。
sudo -u some_user cmdname
任意のユーザーアップロードプログラムを実行するには、極端なセキュリティ予防措置が必要です。。残念ながら、ローカルルートの脆弱性はLinuxで一般的です。ユーザーに一種の刑務所/分離(仮想マシンではない場合)なしでアップロードされたプログラムを実行させることは賢明ではありません。
nobody
アップロードされたプログラムがパッチされていないルートの脆弱性を悪用して権限を0から1に昇格した場合でも、少なくとも安全なシステムを構築する必要がありますroot
。