給定一個腳本test.php
具有內容:即使使用SUID,PHP也不能更改文件權限?
#!/usr/bin/php
<?php
echo exec('whoami');
chmod('test.txt', 0755);
,並在同一目錄本身是一個純文本文件test.txt
,它工作正常,如果誰創造了這些文件,用戶運行該腳本。但是,如果我做的線沿線的東西:
chown apache:apache test.php test.txt
chmod 4775 test.php
,使該test.php的,以作爲「阿帕奇」的用戶,不管是誰的運行它運行的能力。但是當我在上下文中運行它時,出現「Warning:chmod():Operation not permitted」錯誤。並且被「whoami」命令迴應的用戶是通用用戶,而不是「apache」用戶。
那麼,有沒有辦法允許PHP腳本作爲特定用戶運行,除了授予用戶訪問權限以運行腳本爲'apache'?
suid bit只有在運行你的腳本的php解釋器承認它時纔會起作用,它可能不會。你必須自己解釋解釋器二進制文件,這可能是一個壞主意。 –