0

通过 web 访问 php 页面时:

<?php
print '<pre>'."\n";

print 'Current script owner: '."\n";
print get_current_user()."\n";
print "\n";

print '$USER: '."\n";
passthru('print $USER');
print "\n";

我得到输出:

Current script owner: 
danny

$USER: 

为什么shell用户不等于当前脚本所有者?通过 web 服务器在 php 脚本中运行 shell 时如何确定用户?

4

1 回答 1

2

USER环境变量由程序login填写。由于 PHP 作为后台守护程序运行,因此通常不会设置该变量。你可以设置它putenv

$user = posix_getpwuid(posix_geteuid());
putenv('USER='.$user['name']);
于 2013-10-29T06:27:29.697 回答