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