jenkins构建失败shell命令权限被拒绝

时间:2016-06-19 02:09:58

标签: shell jenkins

我正在尝试在mac上运行shell build命令,但我得到permission denied例如ls /Users/...命令。

我看到whoamijenkins,这与我的uesr登录不同?

我在线阅读我需要为jenkins用户运行chmod,我该怎么做?

我使用chmod 777更改了文件权限?

我是否需要更改jenkins用户?

6 个答案:

答案 0 :(得分:0)

也许您遇到jenkins不是完整用户的问题。试试这个:

为Jenkins创建用户

最好以自己的用户身份运行Jenkins(然后可以限制其拥有的权限),并且您需要为其创建标准(完整)用户。

您可以通过“系统偏好设置”,“服务器管理器”或命令行执行此操作。

对于本地用户:

# create an applications group
dseditgroup -o create -n . -u username -p -r ‘Applications’ applications
# get the id for that group
sudo dscl . -read /Groups/applications
# find a unique identifier to give the user
sudo dscl . -list /Users UniqueID
# create the jenkins user
sudo dscl . -create /Users/jenkins
sudo dscl . -create /Users/jenkins PrimaryGroupID 505
sudo dscl . -create /Users/jenkins UniqueID 1026
sudo dscl . -create /Users/jenkins UserShell /bin/bash
sudo dscl . -create /Users/jenkins RealName "Jenkins"
sudo dscl . -create /Users/jenkins NFSHomeDirectory /Users/jenkins
sudo dscl . -passwd /Users/jenkins
# create and set the owner of the home directory
sudo mkdir /Users/jenkins
sudo chown -R jenkins /Users/jenkins

我在这里找到了这个:installing jenkins on OS X Yosemite

答案 1 :(得分:0)

就我而言,该文件夹位于NFS / Samba / Webdav共享中,这些脚本似乎无法处理。 我在我的fs中创建了一个真实文件夹,并将其链接到共享文件夹中的子目录。这样,就不会再出现权限被拒绝的错误。

答案 2 :(得分:0)

我在寡妇中也有同样的问题,其中唯一的用户是admin和Jenkins,它们从CMD以提升的/管理员权限运行。 我正在使用“内容替换插件”-它仅运行一次,然后说该文件已锁定,但是Unlocker和其他实用程序没有显示任何内容,但是我无法删除或重命名该文件。重新启动jenkins服务并重新加载没有帮助,文件被锁定。只有重启才能释放文件。

我最终使用Powershell插件更改了文件的内容-运行没有问题(使用jenkins变量和双引号需要进行一些调整)

例如,替换'img src'->'img title =“ branch,build ...” src'

powershell -Command "(gc ad/bootstrapheader.jsp) -replace 'img src', 'img title=""""branch: $env:GIT_BRANCH; build: $env:BUILD_ID"""""" src' | Out-File ad/bootstrapheader.jsp"

答案 3 :(得分:0)

Jenkins 用户无权运行非 jenkins 用户文件夹或文件。使用在 shell 中以其他用户身份运行(假设使用 linux 操作系统)或将文件夹或内容复制到 jenkins 默认文件夹。

sh ''' su - - << EOF 要运行的命令 '''

将文件夹复制到 jenkins 默认文件夹

cp -rp <要运行的文件夹/文件/相关脚本>

答案 4 :(得分:0)

  1. 打开终端

  2. sudo nano /etc/sudoers

在文件末尾添加以下语句:

詹金斯 ALL=(ALL) NOPASSWD: ALL

保存并退出

答案 5 :(得分:-1)

在linux中,例如ubuntu,您可以将用户jenkins添加到根组:

sudo usermod -a -G root jenkins

然后重启jenkins:

sudo service jenkins restart

请注意,将jenkins用户添加到root组会使用户太强大,请谨慎使用