你好我使用PHP腳本中的命令了shell_exec:Apache用戶權限
$output = shell_exec('ls -l');
print_r($output);
終端:PHP test.php的
預期導致目錄列表。
切換到我的瀏覽器我得不到輸出。
我需要授予用戶'apache'的特權,以便它可以執行某些命令,或將用戶添加到具有這些特權的組中。我知道如何將用戶添加到組等,我只是想知道什麼最佳實踐方法是授予這種權限的Apache用戶。
你好我使用PHP腳本中的命令了shell_exec:Apache用戶權限
$output = shell_exec('ls -l');
print_r($output);
終端:PHP test.php的
預期導致目錄列表。
切換到我的瀏覽器我得不到輸出。
我需要授予用戶'apache'的特權,以便它可以執行某些命令,或將用戶添加到具有這些特權的組中。我知道如何將用戶添加到組等,我只是想知道什麼最佳實踐方法是授予這種權限的Apache用戶。
這花了我一段時間才弄清楚,所以可能對其他人有好處。
問題是我試圖在/ etc/sudoers中給apache用戶權限,而SELinux是(正確地)否認它們。
所以我很快禁用了SELinux for httpd,並且所有工作都正常。
這對於公共Web服務器來說遠非理想情況。
至於最佳實踐,應使用audit2allow來設置許可操作。
如果您在所需的目錄中執行ls -Z,您將看到該目錄的SELinux權限。
允許在httpd/apache的守護進程來訪問你可以執行該目錄(-R選項是讓遞歸):
chcon -Rv --type=httpd_sys_content_t /desired/path
希望它能幫助。