Jenkins在linux上的写权限

Jenkins在linux上的写权限

我无法让詹金斯写入目录,但我相信我已经设置了正确的权限。 Jenkins 由名为“jenkins”的用户运行,该用户属于一个名为“jenkins-group”的组。当我执行以下操作时,相关目录看起来像这样ll

drwxrwxr-x 2 jenkins-group jenkins-group 68 Sep 3 13:01 test_save_data_jenkins_R

我遵循下面链接中推荐的方法,创建一个具有“rwx”权限的组并将运行 Jenkins 的用户添加到该组。如何正确允许用户jenkins写入用户minecraft主目录下的特定目录?

因此,我授予了组“jenkins-group”rwx 权限,这反过来也应该授予用户“jenkins”这些权限,因为它将此组作为辅助组。当我从终端登录用户“jenkins”时,我可以使用touch test.txt.但是,当我在执行 shell 中使用以下命令从 Jenkins 运行构建时:

cd /apps/models/test_save_data_jenkins_R && whoami && touch test.txt

我收到以下错误:

+ cd /apps/models/test_save_data_jenkins_R
+ whoami
jenkins
+ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied
Build step 'Execute shell' marked build as failure
Finished: FAILURE

请注意,组“jenkins-group”还具有对文件夹“apps”和“models”的 rwx 权限。我尝试使用以下命令授予用户“jenkins”直接权限:

$ setfacl -Rm user:jenkins:rwx /apps/models/test_save_data_jenkins_R/

这将导致脚本成功运行。然而,这确实是一种解决方法,我想了解我在之前的方法中做错了什么。

更新#1

跑步groups jenkins

jenkins : jenkins jenkins-group

运行getfacl返回:

# file: test_save_data_jenkins_R/
# owner: jenkins-group
# group: jenkins-group
user::rwx
group::rwx
other::r-x

更新#2

在 jenkins 脚本中运行 /usr/bin/id 给出:

+ /usr/bin/id 
uid=775(jenkins) gid=895(jenkins) groups=895(jenkins)

从终端运行 /usr/bin/id 给出:

uid=775(jenkins) gid=895(jenkins) groups=895(jenkins),1012(jenkins-group)

请注意,在运行 jenkins 服务的 safeRestart 后也会发生这种情况。

答案1

问题是,直到我重新启动詹金斯服务后,用户权限才得到反映。我在 Red Hat Linux 机器上输入:

sudo service jenkins restart

相关内容