繁体   English   中英

我可以在PHP中找到运行Web服务器的用户吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM