我需要检测php是否正在以无人身份运行。我该怎么做呢?
“无名之辈”还有其他的称谓吗?“阿帕奇”还有别的吗?
发布于 2011-10-15 02:03:13
如果可用,您可以使用posix_geteuid
探测当前用户帐户,然后使用posix_getpwuid
获取用户名。
$username = posix_getpwuid(posix_geteuid())['name'];
但是,如果您在安全模式下运行(当exec被禁用时通常就是这种情况),那么您的PHP进程不太可能在默认的www-data
或apache
帐户下运行。
发布于 2011-10-15 01:58:23
<?php echo exec('whoami'); ?>
发布于 2011-10-15 02:04:54
一种落后的方式,但没有exec/system:
file_put_contents("testFile", "test");
$user = fileowner("testFile");
unlink("testFile");
如果您创建了一个文件,则所有者将是PHP用户。
这也可能与任何临时文件函数(如tempnam()
)一起运行,该函数在临时目录中创建一个随机文件并返回该文件的名称。如果由于权限、open_basedir
或安全模式等原因导致无法写入文件而出现问题,通常仍会允许使用临时目录。
https://stackoverflow.com/questions/7771586
复制相似问题