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

我需要检测php是否以没有人的身份运行。我该怎么做呢?


“ nobody”还有其他名称吗?“ apache”?还有其他吗?


长风秋雁
浏览 938回答 3
3回答

慕斯709654

如果可用,您可以使用来探测当前用户帐户,posix_geteuid然后使用来获取用户名 posix_getpwuid。$username = posix_getpwuid(posix_geteuid())['name'];但是,如果您以安全模式运行(通常是在禁用exec的情况下),则您的PHP进程不太可能在默认值www-data或apache帐户下运行。

Smart猫小萌

有点落后,但没有exec / system:file_put_contents("testFile", "test");$user = fileowner("testFile");unlink("testFile");如果创建文件,则所有者将是PHP用户。这也可能与任何临时文件功能(例如)一起运行,该功能tempnam()会在临时目录中创建一个随机文件并返回该文件的名称。如果由于诸如权限open_basedir或安全模式之类的问题而导致无法写入文件的问题,通常,仍将允许temp目录。

守候你守候我

更多细节将很有用,但是假设它是一个linux系统,并且假设php在apache下运行,它将以用户apache所运行的状态运行。一种简单的检查方法(再次假设环境是unix)是使用以下方法创建一个php文件:<?php&nbsp; &nbsp; print shell_exec( 'whoami' );?>这将给您用户。对于我的AWS实例,apache运行此脚本时得到的是输出。
打开App,查看更多内容
随时随地看视频慕课网APP