©
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
(PHP 4, PHP 5, PHP 7)
get_current_user — 获取当前 PHP 脚本所有者名称
返回当前 PHP 脚本所有者名称。
以字符串返回用户名。
Example #1 get_current_user() 例子
<?php
echo 'Current script owner: ' . get_current_user ();
?>
以上例程的输出类似于:
Current script owner: SYSTEM
[#1] login dot naitsirch at arcor dot de [2015-07-02 08:52:38]
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
?>
[#2] nick at little-apps dot org [2013-08-21 05:06:00]
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'));
?>
[#3] south dot bucks at gmail dot com [2012-08-29 14:01:57]
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
[#4] s dot bond1 at lse dot ac dot uk [2007-05-10 05:17:44]
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.
[#5] justin samuel [2005-10-08 23:45:19]
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'];
?>