我已经在linux中创建了一个新的admin用户,并赋予了所需的权限(在visudo中添加)。
我刚刚创建了一个新文件夹,并添加了如下的脚本。
/home/admin/test/1.sh
- 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