詹金斯 - 文件夹权限被拒绝

Jenkins - Permission denied on folder

我在 CentOS 8 上有一个 jenkins 运行 和一个简单的工作,应该在文本文件中写一些东西。

echo "Hello" > /home/dev/Git/Test.txt

目标目录应该是Git:

[dev@h2899618 ~]$ ls -l /home/dev/
insgesamt 12
drwxrwxr-x 3 dev dev 4096  7. Okt 20:54 Git

用户dev拥有以下权限:

[dev@h2899618 ~]$ /usr/bin/id
uid=1002(dev) gid=1002(dev) Gruppen=1002(dev),10(wheel),48(apache),991(jenkins),994(docker)

Jenkins 使用以下权限(通过在作业内部执行 /usr/bin/id 进行验证):

uid=996(jenkins) gid=991(jenkins) groups=991(jenkins)

作业失败并显示消息:

[Test4Jenkins] $ /bin/sh -xe /tmp/jenkins3692200929413510467.sh
+ /usr/bin/id
uid=996(jenkins) gid=991(jenkins) groups=991(jenkins)
+ echo Hallo
/tmp/jenkins3692200929413510467.sh: line 3: /home/dev/Git/Test.txt: Permission denied

那么为什么 jenkins 没有写这个目录的权限?

因此,您拥有 drwxrwxr-x 3 dev dev 4096 权限,这意味着用户 dev 可以执行任何操作,组 [= 中的用户10=]可以做任何事情,其他的,包括jenkins没有写位,不能修改目录内容。但是,通过执行 chmod o+w /home/dev/ 添加此位将以最糟糕的方式解决问题,因为您将授予一个用户对另一个用户的主文件夹的权限。最好使用一些专用目录,例如/var/lib/share。或者甚至更好地尝试以不需要 Jenkins 访问任何东西但它自己的主文件夹 =) 祝你好运! P.S。您可能想将 jenkins 用户添加到组 dev,而不是将 dev 添加到 jenkins 用户