在 CentOS 上设置 Jenkins 权限,通常分为 系统层面(Linux 用户/端口) 和 Jenkins 应用层面(账号与角色权限) 两部分。下面按常见场景说明。
一、Jenkins 应用层权限(最常用)
1. 开启安全配置
- 登录 Jenkins
- 进入
Manage Jenkins → Security → Configure Global Security
- 勾选 Enable security
- 安全域选择:
- Jenkins’ own user database(自带用户)
- 或 LDAP / Unix user(企业常用)
- 授权策略选择:
- Logged-in users can do anything(简单)
- 或 Role-Based Strategy(推荐)
2. 使用 Role-Based 权限(推荐)
(1)安装插件
- 插件名:Role-based Authorization Strategy
(2)配置角色
- Manage Jenkins → Manage and Assign Roles
- 创建角色:
- Global roles(如 admin、reader)
- Project roles(按项目前缀,如
dev-*, test-*)
- 示例:
- admin:全部权限
- dev:只构建/查看 dev-* 项目
(3)给用户分配角色
- Assign Roles
- 添加用户 → 勾选对应角色
3. 创建 Jenkins 用户
- Manage Jenkins → Users → Create User
- 设置用户名、密码
二、CentOS 系统层权限(Jenkins 运行用户)
1. Jenkins 默认用户
CentOS 上 Jenkins 默认以 jenkins 用户运行:
cat /etc/passwd | grep jenkins
2. 修改 Jenkins 运行用户(可选)
编辑:
vi /etc/sysconfig/jenkins
修改:
JENKINS_USER="jenkins"
更改目录权限:
chown -R jenkins:jenkins /var/lib/jenkins
chown -R jenkins:jenkins /var/log/jenkins
重启:
systemctl restart jenkins
三、端口与防火墙权限(CentOS)
1. 修改 Jenkins 端口
vi /etc/sysconfig/jenkins
JENKINS_PORT="8080"
2. 防火墙放行
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
四、常见权限问题排查
1. 构建时权限不足
sudo chown -R jenkins:jenkins /your/project/path
2. Jenkins 无法执行命令
将 jenkins 用户加入对应组:
usermod -aG docker jenkins
systemctl restart jenkins
五、最小权限建议(生产环境)
- 不用 admin 账号日常使用
- 按团队拆分 Project Role
- Jenkins 用户不授予 root
- 使用 sudo 精确授权
如果你有具体需求(例如:只允许某人构建某个项目 / LDAP 登录 / Docker 权限 / Pipeline 权限),可以告诉我,我可以给你更精确的配置示例。