使用 root 权限在 Hudson 中执行构建任务

jen*_*ren 4 security sudo hudson continuous-integration

我有一个执行 apt-get 的构建脚本,因此需要 root 权限。在 Hudson 中运行此脚本的最佳方法是什么?

目前,我发现唯一有效的解决方案是为用户 hudson 向 sudoers 文件添加一个条目,如下所示:

hudson  ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)

然而,虽然我的构建脚本现在在 Hudson 中运行没有错误,但我对这个解决方案并不完全满意。有没有更好的办法?

cpb*_*lls 6

我更进一步,锁定apt-get我锁定您可以使用的参数,因为我们不希望有人安装或删除某些东西。

%admins         ALL =  NOPASSWD:                   \
                    /usr/bin/apt-get update,        \
                    /usr/bin/apt-get dist-upgrade,  \
                    /usr/bin/apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

这使组admins有权在不提供密码的情况下运行 apt-get update/dist-upgrade/upgrade。