在 CentOS 上给 Jenkins 权限,常见场景有几种,下面按最常见的情况给你说明(从简单到常见生产配置)。
在 CentOS 上,通过 yum/rpm 安装的 Jenkins,默认运行用户是:
jenkins
查看方式:
ps -ef | grep jenkins
或:
cat /etc/passwd | grep jenkins
例如 Jenkins 需要访问 /data/app:
chown -R jenkins:jenkins /data/app
或只给权限而不改属主:
chmod -R 775 /data/app
⚠️ 不推荐 777,除非临时测试。
编辑 Jenkins 配置文件:
vim /etc/sysconfig/jenkins
修改:
JENKINS_USER="root"
然后重启:
systemctl restart jenkins
✅ 优点:权限最大
❌ 缺点:安全风险高(不推荐生产环境)
编辑 sudo 配置:
visudo
添加一行:
jenkins ALL=(ALL) NOPASSWD: ALL
或只给指定命令(更安全):
jenkins ALL=(ALL) NOPASSWD: /usr/bin/docker, /usr/bin/systemctl
sudo systemctl restart nginx
sudo docker ps
usermod -aG docker jenkins
重启 Jenkins:
systemctl restart jenkins
验证:
su - jenkins
docker ps
/home/jenkins/.ssh
设置权限(非常重要):
mkdir -p /home/jenkins/.ssh
chmod 700 /home/jenkins/.ssh
chmod 600 /home/jenkins/.ssh/id_rsa
chown -R jenkins:jenkins /home/jenkins/.ssh
Jenkins 默认端口是 8080,如果要改成 80:
✅ 推荐方式(不要直接 root):
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
或:
setcap CAP_NET_BIND_SERVICE=+eip /usr/lib/jvm/java-*/bin/java
journalctl -u jenkins -f
或:
/var/log/jenkins/jenkins.log
✅ 不要 root 运行 Jenkins
✅ 使用 jenkins 用户
✅ 通过 sudo 授权必要命令
✅ Docker 场景加 docker 组
✅ 文件权限用 chown 而不是 777
如果你能具体说一下是哪种权限问题(例如:Jenkins 不能拉代码 / 不能部署 / 不能执行脚本 / Docker 权限),我可以直接给你一整套配置命令。