为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查以什么用户身份运行php?

如何检查以什么用户身份运行php?

PHP
长风秋雁 2019-10-17 16:28:40
我需要检测php是否以没有人的身份运行。我该怎么做呢?“ nobody”还有其他名称吗?“ apache”?还有其他吗?
查看完整描述

3 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

如果可用,您可以使用来探测当前用户帐户,posix_geteuid然后使用来获取用户名 posix_getpwuid。


$username = posix_getpwuid(posix_geteuid())['name'];

但是,如果您以安全模式运行(通常是在禁用exec的情况下),则您的PHP进程不太可能在默认值www-data或apache帐户下运行。


查看完整回答
反对 回复 2019-10-17
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

有点落后,但没有exec / system:


file_put_contents("testFile", "test");

$user = fileowner("testFile");

unlink("testFile");

如果创建文件,则所有者将是PHP用户。


这也可能与任何临时文件功能(例如)一起运行,该功能tempnam()会在临时目录中创建一个随机文件并返回该文件的名称。如果由于诸如权限open_basedir或安全模式之类的问题而导致无法写入文件的问题,通常,仍将允许temp目录。


查看完整回答
反对 回复 2019-10-17
?
守候你守候我

TA贡献1802条经验 获得超10个赞

更多细节将很有用,但是假设它是一个linux系统,并且假设php在apache下运行,它将以用户apache所运行的状态运行。


一种简单的检查方法(再次假设环境是unix)是使用以下方法创建一个php文件:


<?php

    print shell_exec( 'whoami' );

?>

这将给您用户。


对于我的AWS实例,apache运行此脚本时得到的是输出。


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 934 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信