が内容を持っているスクリプトtest.php
考える:PHPはSUIDでもファイルのパーミッションを変更できませんか?
#!/usr/bin/php
<?php
echo exec('whoami');
chmod('test.txt', 0755);
と自身と同じディレクトリにあるテキストファイルtest.txt
をそれらのファイルを作成し、ユーザがスクリプトを実行した場合、それが正常に動作します。しかし、私はの線に沿って何かをする場合:
chown apache:apache test.php test.txt
chmod 4775 test.php
。しかし、私はそのコンテキストでそれを実行すると、私は "警告:chmod():操作が許可されていません"エラーが表示されます。また、 "whoami"コマンドによってエコーされるユーザーは、一般的なユーザーであり、 'apache'ユーザーではありません。
したがって、ユーザーにsudo
アクセス権を付与してスクリプトを 'apache'として実行する以外に、PHPスクリプトを特定のユーザーとして実行する方法はありますか?
suidビットは、スクリプトを実行しているPHPインタプリタがそれを認識した場合にのみ機能します。インタプリタバイナリ自体をsuidする必要があります。これはおそらく悪い考えです。 –