Jenkins拷贝WAR包至Tomcat webapps目录时遇权限拒绝问题
解决Jenkins拷贝WAR包到Tomcat webapps权限拒绝问题
问题原因
Jenkins默认以jenkins系统用户运行,而/root目录是root用户的专属目录,普通用户无访问、写入权限,因此执行拷贝命令时触发权限拒绝错误。
解决方案
方案1:调整Tomcat目录权限
- 查看目标目录权限:
ls -ld /root/apache-tomcat-10.0.27/webapps - 将jenkins用户加入root组(扩大权限范围):
usermod -aG root jenkins - 修改webapps目录权限,允许root组读写:
chmod -R g+rw /root/apache-tomcat-10.0.27/webapps - 若需要完全移交目录所有权,执行:
chown -R jenkins:jenkins /root/apache-tomcat-10.0.27/webapps - 重启Jenkins服务使权限生效:
systemctl restart jenkins
方案2:迁移Tomcat到非root目录
将Tomcat安装到普通用户可访问的公共目录(如/opt),避免权限限制:
- 移动Tomcat目录:
mv /root/apache-tomcat-10.0.27 /opt/ - 修改目录所有权为jenkins用户:
chown -R jenkins:jenkins /opt/apache-tomcat-10.0.27 - 更新Jenkins任务中的Shell命令路径:
cp /target/gamutgurus.war /opt/apache-tomcat-10.0.27/webapps
方案3:用sudo执行拷贝命令
给jenkins用户配置免密sudo权限,允许其执行cp命令:
- 编辑sudoers文件(使用visudo避免语法错误):
visudo - 在文件末尾添加一行:
jenkins ALL=(ALL) NOPASSWD: /bin/cp - 修改Jenkins任务中的拷贝命令:
sudo cp /target/gamutgurus.war /root/apache-tomcat-10.0.27/webapps
内容的提问来源于stack exchange,提问作者Bharath kumar
相关产品推荐
相关产品推荐

