在 CentOS 上配置 Jenkins 权限,通常分为 系统级(Linux 用户/目录权限) 和 Jenkins 内部权限管理 两部分。下面按常见场景一步步说明。
CentOS 上 Jenkins 一般通过 jenkins 用户运行:
cat /etc/passwd | grep jenkins
启动服务:
systemctl status jenkins
如果你希望用 root 或其他用户(不推荐 root):
vim /etc/sysconfig/jenkins
修改:
JENKINS_USER="jenkins"
改完后:
chown -R jenkins:jenkins /var/lib/jenkins
chown -R jenkins:jenkins /var/log/jenkins
systemctl restart jenkins
如果构建时提示 Permission denied:
chown -R jenkins:jenkins /var/lib/jenkins
chmod 755 /var/lib/jenkins
如果 Jenkins 需要操作 Docker:
usermod -aG docker jenkins
systemctl restart jenkins
| 用户 | Overall | Job | Run | Read |
|---|---|---|---|---|
| admin | ✅ | ✅ | ✅ | ✅ |
| dev | ✅ | ✅ | ✅ |
Role-based Authorization Strategy
全局安全配置 → 授权策略 → Role-Based
系统管理 → Manage and Assign Roles
示例:
dev-role → 只能构建 dev-* 项目ops-role → 管理员权限全局安全配置中:
sudo: no tty present
解决:
visudo
jenkins ALL=(ALL) NOPASSWD:ALL
journalctl -u jenkins -f
✅ Jenkins 用 jenkins 用户
✅ 不用 root
✅ 用 Role-Based 插件
✅ 关闭匿名访问
✅ Docker / 部署权限用用户组
如果你有具体需求(比如:只允许某人构建某个项目 / Jenkins 操作 k8s / Jenkins 调 shell 脚本权限),可以告诉我,我给你针对性配置。