为目录中的脚本添加提升的权限

为目录中的脚本添加提升的权限

我有一个目录,其中包含一些需要通过 Web 请求调用的脚本。这些脚本需要提升权限才能运行。

我目前的想法是添加以下几行/etc/sudoers

Cmnd_Alias WEB_COMMANDS = /path/to/scripts
www-data ALL=(ALL) NOPASSWD: WEB_COMMANDS

这是解决这个问题的正确方法吗?还是我造成了潜在的安全漏洞?

使用 CentOS 7,如果有任何区别的话。

答案1

任何事情都可能存在安全漏洞。有两件事:

首先,你当然它需要 root 权限吗?为什么?您可以使用 capabilities 来做到这一点吗?(您可能可以。)

话虽如此,你的例子几乎是正确的。在路径后添加一个星号:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts/*

现在它可以工作了。但要注意,如果攻击者可以修改任何脚本,那么攻击者将获得完全根访问权限。他们可以简单地exec('/bin/bash')拥有一个 shell。如果可能的话,一定要按照每个脚本的功能路线走,并且一定要锁定脚本目录。参见这个unix.se答案有关使用脚本管理功能的信息。

相关内容