我有一个jenkins设置,其中有多个用户使用Active Directory plugin登录。这很有用,这样每个用户都可以访问自己的任务。
但是每个用户在本地网络上也有不同的权限,例如访问不同的文件夹等。我注意到,给每个任务的权限没有链接到用户,而是链接到运行从属的帐户。服务。有没有办法改变它,以便在用户的凭证(以及因此权限)下在奴隶上执行任务?
谢谢
答案 0 :(得分:5)
问题是:Jenkins主机只有一个从属进程运行分配给该服务器的不同作业 因此,从属设备本身作为一个用户(通常是专用帐户或系统帐户)运行。
由于您可以将用户ID作为环境变量(使用JENKINS Build User Vars Plugin之类的插件),因此您可以考虑配置作业以使其构建步骤为"运行为"触发构建的用户。
例如,请参阅JENKINS Authorize Project plugin。
"授权项目"插件不会更改正在运行命令的操作系统级别用户 它只使用Jenkins身份验证(无论它可能是什么)设置运行作业和任何下游作业的Jenkins用户。
因此,您需要build step with runas or su -c commands才能确定您的任务确实与合适的用户一起运行。
答案 1 :(得分:1)
我有类似的问题,我可以回忆一下,我使用role strategy plugin管理对项目的更多控制,并使用LDAP服务器设置全局安全性(Active目录也应该没问题)。 我使用了authorized project plugin。 看看,我希望它能解决你的目的。如有任何澄清,请在评论部分告诉我。
答案 2 :(得分:1)
您可以通过这种方式部分解决问题:
这至少使您能够使用一个帐户代替系统。