当我在服务器上运行脚本时,我们如何确定运行php脚本的用户?它是否偶然在与apache或phpmyadmin相同的用户下运行?我的问题可能是错误的框架,但我想知道哪个用户,以便我为/ var中的不同文件夹设置适当的权限
如果您有可用的posix函数(在大多数基于Linux的环境中默认启用),那么您可以使用posix_geteuid和posix_getpwuid获取用户的名称(至少在非Windows环境中),如下所示:
$pwu_data = posix_getpwuid(posix_geteuid());
$username = $pwu_data['name'];
Run Code Online (Sandbox Code Playgroud)
另一种(更昂贵的)方法是使用像exec这样的shell执行函数来运行whoami:
$username = exec('whoami');
Run Code Online (Sandbox Code Playgroud)
甚至是反叛(尽管你可能需要修剪掉线):
$username = `whoami`;
Run Code Online (Sandbox Code Playgroud)
我个人只需要获取运行脚本的用户的用户名,该脚本在shell中运行(在命令行上).通常,在构建对Web服务器正在处理的请求的响应的过程中运行的脚本将作为Web服务器用户运行,例如www-data,apache等.在Apache中,运行apache /的用户httpd进程使用User指令设置.
重要说明:get_current_user不会为您提供运行脚本的用户的用户名,而是为您提供脚本的OWNER.这里的一些答案(适当下调)建议使用get_current_user,但这不会给你运行当前脚本的用户的用户名.
| 归档时间: |
|
| 查看次数: |
14990 次 |
| 最近记录: |