我有一个 PHP 脚本,它执行以下操作:
$output = exec('sudo nginx -t 2>&1');
echo $output;
正如预期的那样,由于使用 sudo
命令,它返回以下内容:
sudo: no tty present and no askpass program specified
但是,我可以在终端 php/var/www/html/script.php
中运行 PHP,并且无需提示输入 sudo 密码即可运行。
有人告诉我,我在系统上以 root 身份运行 PHP,这是危险的。
但是,我所做的只是遵循这个tutorial -真的有那么危险吗?
此外,如果我使用Cron 作业来运行 PHP 脚本,它会完美运行
我正在使用 NGINX 和 Ubuntu 20.04 + PHP 7
最佳答案
当您运行 php/var/www/html/script.php
时,您会在当前用户下运行 php
进程(很可能在 >sudoers
组)。
Ubuntu 默认 sudo 密码超时为 15 分钟。这意味着,如果您的用户(也运行 PHP 脚本的用户)在不到 15 分钟前输入了 sudo 密码,系统将不会再次要求输入密码。
关于php - 为什么我能够运行 PHP sudo 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66217154/