运行 PHP 时以 root 身份运行,而不是以登录用户身份运行

运行 PHP 时以 root 身份运行,而不是以登录用户身份运行

我有一个小型开发环境,其中的 PHP 脚本仅包含以下内容:

哪个用户.php

<?php var_dump( exec('whoami') ); ?>

当我尝试通过 CLI 执行此“脚本”时,发生了以下情况:

ubuntu@dev:/var/www/html/$ php whichuser.php
string(4) "root"

但是,如果我按如下方式运行命令,我会得到不同的输出:

ubuntu@dev:/var/www/html/$ /usr/bin/php whichuser.php
string(6) "ubuntu"

我想这是我的 PATH 设置的问题,它们看起来如下:

ubuntu@dev:/var/www/html/$  echo $PATH
/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/bin/php:/snap/bin:/home/ubuntu/.composer/vendor/bin:/usr/bin/php

它可能看起来有点奇怪,因为我一直在尝试自己解决这个问题。

有人可以提供一些建议吗?

如果问题不清楚,我正在尝试让 CLI 命令php以当前登录用户的身份运行,这是应该的。

编辑1

我已根据您的建议运行以下命令:

ubuntu@dev:/var/www/html/$  ls -l $( type -a -p php)
lrwxrwxrwx 1 root root 21 Jan 22 06:57 /usr/bin/php -> /etc/alternatives/php

我不确定这个符号链接是否是问题所在。这能让我们了解到底发生了什么吗?

编辑2

由于另一个建议,我还运行了以下命令:

ubuntu@dev:/var/www/html/$  type -a php
php is aliased to `sudo php'
php is /usr/bin/php

看起来那条别名线是罪魁祸首。我认为它不应该是那样的?

编辑 3-解决方案

感谢@wjandrea 提供的提示,我能够在 找到 bash 别名文件/home/ubuntu/.bash_aliases

其中有一个我删除的别名指令。然后我重新登录,php一切如预期。

/usr/bin/php我还从我的变量中删除了该行,PATH因为它不应该存在。

@wjandrea,如果你想正确回答这个问题,我会把你的回答标记为解决方案,并在适当的时候给予你赞扬。

答案1

php命令被别名为sudo php

我编辑了我的/home/ubuntu/.bash_aliases文件并删除了别名记录。

之后重新登录解决了问题。

相关内容