在jenkins管道中执行shell脚本时获得权限被拒绝



我已经在linux中创建了一个新的admin用户,并赋予了所需的权限(在visudo中添加)。

我刚刚创建了一个新文件夹,并添加了如下的脚本。

/home/admin/test/1.sh
  1. sh包含
#!/bin/bash
echo hello

然后给予1.sh. sh.

的可执行权限。chmod +x 1.sh,并赋予文件夹的完全权限。

chmod 777 test,当我直接在linux服务器上执行时,它工作良好。

创建jenkins管道作业。

pipeline {
agent any
stages {
stage ('Testing bash script') {
steps {
sh '/home/admin/test/1.sh'
}
}
}
}

当我在jenkins中执行它时,得到下面的错误。不知道为什么会失败。

请帮忙。

/var/lib/jenkins/workspace/TestScript@tmp/durable-c6024b58/script.sh: line 1: /home/admin/test/1.sh: Permission denied

尝试将chmod +x 1.sh改为chmod a+rx 1.sh

让我知道它是否有效。

致意。

我也遇到过同样的问题,为了解决这个问题,我简单地创建了一个新的脚本,从一开始就添加了执行权限,并更改了我的Jenkinsfile (ofc)中的引用。

这样做之后,我可以克服这个错误。

你没有说你正在使用什么系统,但如果它是Centos,它可以与SELinux相关,所以你可以把它切换到许可模式,然后再试一次。无论如何,最好的方法是使用sudo/su切换到用户jenkins(或任何其他用于运行jenkins的用户),然后尝试从shell执行此脚本。要在脚本所在的整个路径上列出权限,可以使用namei -l /home/admin/test/1.sh

相关内容

  • 没有找到相关文章

最新更新