get_current_user()
(PHP 4, PHP 5, PHP 7)
获取当前 PHP 脚本所有者名称
说明
get_current_user(void): string
返回当前 PHP 脚本所有者名称。
返回值
以字符串返回用户名。
范例
Example #1get_current_user()例子
<?php echo 'Current script owner: ' . get_current_user(); ?>
以上例程的输出类似于:
Current script owner: SYSTEM
参见
getmyuid()获取 PHP 脚本所有者的 UIDgetmygid()获取当前 PHP 脚本拥有者的 GIDgetmypid()获取 PHP 进程的 IDgetmyinode()获取当前脚本的索引节点(inode)getlastmod()获取页面最后修改的时间
to get the username of the process owner (rather than the file owner), you can use: <?php $processUser = posix_getpwuid(posix_geteuid()); print $processUser['name']; ?>
On Centos, the Red Hat linux clone, this instruction gives the file's OWNER (the first parameter in instruction 'chown'). It does not reveal the file's GROUP. get_current_user() does NOT reveal the current process' user's identity. See: posix_getuid() - Return the real user ID of the current process
The information returned by get_current_user() seems to depend on the platform. Using PHP 5.1.1 running as CGI with IIS 5.0 on Windows NT, get_current_user() returns the owner of the process running the script, *not* the owner of the script itself. It's easy to test - create a file containing: <?php echo get_current_user(); ?> Then access it through the browser. I get: IUSR_MACHINE, the Internet Guest Account on Windows, which is certainly not the owner of the script.
If you have userdir enabled, get_current_user() returns the username of the user hosting the public_html. For example, http://example.com/~bobevans/somescript.php will return bobevans when calling get_current_user().
Since this only returns the file owner and not the actual user running the script, an alternative in Linux is:
<?php
$current_user = trim(shell_exec('whoami'));
?>
If you want to get the name of the user who executes the current PHP script, you can use
<?php
$username = getenv('USERNAME') ?: getenv('USER');
echo $username; // e.g. root or www-data
?>
