3

我正在尝试将 shell 脚本作为 GoCD 中的任务运行,但该脚本似乎没有执行某些命令的 root 权限。

4

1 回答 1

2

首先,您需要非常小心运行命令,因为 root 非常危险。如果您确实必须这样做,只需将“go”用户添加到可以运行“sudo”的组中,并在所有需要 root 访问权限的命令前加上“sudo”。

当您可能想要使用“shell-executor-task”插件 https://github.com/gocd-contrib/script-executor-task 而不是依赖内置的自定义命令执行器时,就是这种情况。使用 shell-executor-task 的原因是您可以将特权命令保留在服务器配置本身而不是 SCM 中,因此对特权命令的访问将仅限于服务器管理员。

此外,我不会将 carte-blanche sudo 访问权限授予 go 用户,而是将 sudo 权限进一步限制为仅真正需要它的某些命令。

最后一件事,我将创建一个特殊的任务代理服务器,它可以运行 sudo 命令并且只让 sudo 作业在该代理上运行。如果不经常这样做,那么维护任务服务器是一种资源浪费,我会将这个服务器放在 VM 或 docker 容器中。

于 2015-12-29T16:29:47.123 回答