Jenkins中cd、cat命令无法执行,赋权后仍报错求解决方案
Started by user Amrit Subedi
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/todolist-app
[todolist-app] $ /bin/sh -xe /tmp/jenkins4194062835107740167.sh
- cd /home/amrit/Jenkins/docker
/tmp/jenkins4194062835107740167.sh: 2: cd: can't cd to /home/amrit/Jenkins/docker
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Jenkins执行cd命令失败:无法切换到目标目录的解决方案
针对你遇到的问题,以下是可行的解决方案:
1. 验证目录路径有效性
- 在Jenkins服务器执行
ls -ld /home/amrit/Jenkins/docker,确认目录真实存在。注意Linux路径区分大小写,检查是否有拼写错误(比如字母大小写、空格、符号偏差)。
2. 修复目录及父目录的访问权限
仅给目标目录加全权限不够,SYSTEM用户需要逐层进入父目录,必须保证所有父目录拥有其他用户的执行权限(x):
- 执行命令修复父目录权限:
chmod o+x /home/amrit /home/amrit/Jenkins - 验证权限是否生效:
若输出su -s /bin/sh jenkins -c "cd /home/amrit/Jenkins/docker && echo Success"Success,说明权限问题已解决。
3. 绕过cd操作,直接使用绝对路径
无需切换目录,直接在命令中指定目标文件/脚本的绝对路径:
- 查看文件内容:
cat /home/amrit/Jenkins/docker/your-file.txt - 执行脚本:
/home/amrit/Jenkins/docker/run-script.sh
4. 切换Jenkins任务的执行用户
修改任务配置,让脚本以amrit用户身份执行:
- 进入任务配置页,找到「构建环境」区域,勾选「以特定用户身份执行」
- 选择
amrit用户(需确保该用户已在Jenkins中配置且拥有对应权限)
5. 检查Jenkins安全策略限制
若Jenkins启用了安全脚本插件或自定义权限规则,可能限制了SYSTEM用户访问特定目录:
- 进入Jenkins全局配置,检查「安全脚本」相关设置,确保允许访问
/home/amrit/Jenkins/docker路径
内容的提问来源于stack exchange,提问作者amrit123
相关产品推荐
相关产品推荐

