为什么在执行“sudo su”时 php cgi 会加载到路径中“与仅使用 php cli 登录相比?

为什么在执行“sudo su”时 php cgi 会加载到路径中“与仅使用 php cli 登录相比?

当以 root 用户身份登录时,php 会加载正确的版本,即 php cli。

在此处输入图片描述

但是当我做一个sudo su <用户>,php 正在加载 cgi 版本,这会破坏我的一些需要 php-cli 版本的应用程序。

在此处输入图片描述

我尝试将 php-cgi 更改为 php-cli,但这完全破坏了我所有的网站,因为我相信我的 cms 网站需要 php-cgi 才能正常运行。

如何将 php-cli 设为执行以下任一操作时的默认程序sudo su 用户或者sudo-i

答案1

SUDO SU user只让以 root 身份运行,而不是在用户上下文中执行的命令。要强制以 root 身份执行 php,您需要使用SUDO php,并且还需要将用户添加到 sudoers。从安全角度来看,如果用户与运行 CMS 的用户相同,我不建议使用最后一部分。

允许用户要使用SUDO php,请将其添加到 sudoers 的末尾SUDO visudo

# Allow the user pat to (sudo) execute /usr/local/bin/php
# as root without requiring user authentication.
pat ALL = NOPASSWD: /usr/local/bin/php

如果用户不是运行 CMS 的同一个用户,您可以添加具有 执行权限的组/usr/local/bin/php

如果具有执行权限,但仍然不起作用,那么请确保在 PATH 中/usr/local/bin之前有。/usr/bin

相关内容