以非特权用户身份写入 Nginx 配置

以非特权用户身份写入 Nginx 配置

我有一个由非特权用户执行的部署脚本deploy。但为了完全自动化,我必须编写一个 Web 服务器配置文件并将/etc/nginx/sites-available其符号链接到/etc/nginx/sites-enabled

我不想更改此特定目录的所有权或权限,因此我一直在尝试找出一种无需密码的 sudo 访问方法。既然我已经在这里了,我想很明显我还没有成功。

有什么方法可以更新我的sudoers文件,以便deploy用户可以将新文件写入这些目录?

答案1

您可以尝试编写NOPASSWD如下规则:

deploy ALL = (root) NOPASSWD: /bin/cp -t /etc/nginx/sites-available *, /bin/ln -s /etc/nginx/sites-available/* /etc/nginx/sites-enabled

然后deploy用户直接复制到该sites-available文件夹​​,在其他地方创建配置后,创建链接(不指定目标名称)。

这也许也会有漏洞。

NOPASSWD或者您可以编写一个脚本来管理所有这些内容,并仅使用该脚本制定一条规则。

相关内容