为 www-data 使用配置 /etc/sudoers 的最聪明的方法

smartest way to use config /etc/sudoers for www-data

我想问一下,如果您有时需要 exec 或 shell_exec 函数用于 cp、mv 或启动一些 python 文件。 www-data ALL=(ALL) NOPASSWD:ALL 是唯一的方法还是你会如何配置这样的问题?谢谢

www-data 设置为 sudoer 是一个非常糟糕的主意,更何况是没有密码的 sudoer。这意味着如果任何人以某种方式设法通过 Web 服务器触发一些 PHP 代码(任何类型的删除代码执行漏洞),他们就可以接管整个服务器,因为他们可以像 SUDO 一样执行命令而无需在您的网站上输入密码整个服务器。

这里有几个可能的选择:

  • 根据文件内容,您可以授予 www-data 对那些特定文件所需的权限。

  • 使用队列。让 PHP 将操作添加到队列中,然后让一些脚本(可以每隔几秒使用 CRON 调用一次,或者您创建一个不同的服务 运行 作为守护进程)读取并执行队列中的操作.然后你也可以在它执行之前限制和验证它可以执行的操作。