[英]Can I find which user the web server is being run as in PHP?
我正在用PHP編寫一個簡單的Web應用程序,需要對服務器上的目錄具有寫入權限,如果目錄不可寫我想顯示一條錯誤消息,說明將目錄的所有者設置為webserver是誰正在運行(例如,www-data,nobody),但由於大多數人不知道這一點,能夠告訴他們將目錄列入誰的狀態會很好。 是否可以從PHP中找到它?
<?php
echo exec('whoami');
?>
我使用的快速和骯臟的技巧是將文件寫入/tmp/
。 它應該使用PHP進程使用的用戶和組創建。
在Unix平台上,只要安裝或編譯了posix擴展,這個解決方案即使在安全模式下也可以工作。
$user = posix_getpwuid(posix_geteuid());
echo $user['name'];
文件在這里 。
如果在linux / unix上:
<?php
$temp = tmpfile();
print_r(posix_getpwuid(fileowner($temp)));
?>
在一些使用echo exec('whoami');
服務器中echo exec('whoami');
或者exec('whoami',$out); echo $out;
exec('whoami',$out); echo $out;
什么都不返回,但在每種情況下,您都可以使用get_current_user獲取當前用戶
<?php
echo get_current_user();
?>
如果你可以運行一些bash,你可以使用whoami
或者你可以在/proc
該錯誤消息在Windows服務器環境中崩潰。 “請確保Web服務器具有對目錄的寫訪問權限”可能是更好的錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.