• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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
    

    参见

    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
    ?>