php - 为什么我能够运行 PHP sudo 命令?

标签 php ubuntu nginx

我有一个 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/

相关文章:

php - Ajax将请求结果返回到整个屏幕而不是指定的文本区域

linux - 这是哪个主题或桌面环境?

php - 验证 MySQL 查询中的日期范围

php - Zend 框架 "under maintenance"页面

windows - 如何在 Windows 10 上使 wsl2 从停止状态变为运行状态

docker - 添加rewrite_by_lua模块到nginx :alpine

node.js - nginx 位置打破 Node ( sails )路线

apache - 具有 SSL 直通到具有多个后端的多个域的 HAProxy

javascript - 为什么模式不能用 codeigniter jquery 和 bootstrap 完全关闭

docker - 是否可以在 docker 上运行 TrueNAS?