authentication - Jenkins 以特定用户身份运行无法正常工作

标签 authentication jenkins permissions jenkins-plugins

我正在尝试让 Jenkins 以特定的 Linux 用户身份运行作业。

我已将安全设置为使用 Unix 身份验证并安装了 "Authorize Project" plugin .

我在我的 ~/bin 目录中编写了一个简单的脚本,该脚本向我发送一封电子邮件,其中包含消息“Hello $USER”。

在 Jenkins 中,我设置了一个作业并使用授权项目插件来选择以特定用户身份运行和我的用户名。

当我尝试创建构建时,作业失败。如果我查看输出控制台,消息会显示该作业已由我的用户启动,该作业已由我运行。但随后作业失败,因为该脚本实际上是由用户 jenkins 运行的,该用户没有所有必需的权限(也没有设置环境变量)。

我做错了什么吗?我该如何解决这个问题?

最佳答案

“授权项目”插件不会更改正在运行命令的操作系统级别用户。它仅使用 Jenkins 身份验证(无论是什么)设置运行作业和任何下游作业的 Jenkins 用户。

例如:作业A可以由用户Alpha和Beta运行,作业A运行作业B,作业B只能由Alpha运行。

通常情况下,Alpha 或 Beta 可以运行作业 A,作业 B 也可以正常运行,因为作业 B 默认会以系统用户身份运行。

但在某些情况下,您可能希望强制 Beta 无法运行作业 B,无论它们如何启动该进程。因此,作业 A 可以设置为“以触发构建的用户身份运行”。当 Beta 运行作业 A 时,作业 A 将无法运行作业 B,因为强制用户是 Beta,而 Beta 无法运行作业 B。

或者相反:Beta 不允许直接运行作业 B。但是,如果他们运行某些特定进程(运行作业 A),那么他们可以间接运行作业 B。将作业A设置为“以指定用户身份运行”并指定可以运行作业B的用户(例如Alpha)将允许Beta通过作业A运行作业B。

关于authentication - Jenkins 以特定用户身份运行无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063936/

相关文章:

如果用户名/电子邮件错误,PHP 不会执行任何操作

authentication - 如何从断开的网络生成 SSL 客户端证书?

facebook - Ember-simple-auth、Torii 和 Facebook Oauth2 的工作流程

java - 使用 TestContainers 和 Jenkins 在 docker 容器中运行测试(docker.sock 权限被拒绝)

maven - 无法在所选应用程序的 Sonar 仪表板上看到代码覆盖率选项卡

linux - Laravel 权限被拒绝 Centos 7

c# - 为什么我不能使用HttpClient 登录这个ASP.NET 网站?

android - 无法从 Jenkins 签署 Android APK,但可以从命令行运行

python - 尝试安装 tensorflow 时收到奇怪的权限错误

powershell - 使用Powershell分配文件夹权限时遇到问题