在 CentOS 上配置 Jenkins 权限,通常分为 系统级权限(Linux 用户/文件) 和 Jenkins 内部权限(账号与角色) 两部分。下面按常见场景说明。
Jenkins 默认使用 jenkins 用户运行:
cat /etc/passwd | grep jenkins
如果要用其他用户(如 www):
sudo vim /etc/sysconfig/jenkins
修改:
JENKINS_USER="jenkins"
修改后:
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chown -R jenkins:jenkins /var/log/jenkins
sudo systemctl restart jenkins
确保 Jenkins 能读写:
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chmod -R 755 /var/lib/jenkins
如果你用自定义工作空间:
sudo chown -R jenkins:jenkins /data/jenkins_workspace
如果 Jenkins 需要执行 docker:
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
需要 sudo 权限(谨慎):
visudo
添加:
jenkins ALL=(ALL) NOPASSWD: ALL
示例:
| 用户 | Admin | Read | Job | Run |
|---|---|---|---|---|
| admin | ✅ | ✅ | ✅ | ✅ |
| dev | ❌ | ✅ | ✅ | ✅ |
Role-based Authorization Strategy
Manage Jenkins → Security → Authorization
选择:Role-Based Strategy
Manage Jenkins → Manage and Assign Roles
Global Roles
Project Roles
dev-.*jenkins 用户权限sudo vim /var/lib/jenkins/config.xml
删除 <authorizationStrategy> 内容,重启 Jenkins
sudo chmod 666 /var/run/docker.sock
# 或
sudo usermod -aG docker jenkins
查看日志:
sudo tail -f /var/log/jenkins/jenkins.log
如果你能说明:
我可以给你更精确的配置示例。