PHP:如何检测用户是否为root / sudo?

参见英文答案 > Check if a user is root                                    6个
我有一个命令行PHP脚本,需要在Linux系统上使用root级别权限运行.

在我们旧的Redhat Enterprise 2 Linux发行版中,此代码有效:

// If we are linux, make sure we're root
if ($bIsLinux && $_ENV['USER'] != 'root')
    die("This script must be run as root.\n");

但是,我们已经升级了服务器,现在使用的是现代版本的Linux(亚马逊Linux).哪个好,但上面不再适用.在AML上,你实际上没有root密码,但你可以从ec2-user sudo.我甚至尝试过sudo -i,但这并没有改变环境变量 – 因此上面的代码失败了.

因此,在继续之前,我需要一种新方法来确保根级别权限.

有人有主意吗?

谢谢!

最佳答案
使用posix_getuid,您可以检查用户是否是root用户.

<?php
    if (posix_getuid() == 0){
        echo "This is root !";
    } else {
        echo "This is non-root";
}
?>

0是root,其他任何东西都不是.

转载注明原文:PHP:如何检测用户是否为root / sudo? - 代码日志