在 CentOS 上配置 Jenkins 权限,通常分为 系统层(Linux 用户/目录权限) 和 Jenkins 应用层(角色/项目权限) 两部分。下面按常见场景给你一个清晰的做法。
CentOS 上 Jenkins 一般以 jenkins 用户运行:
ps -ef | grep jenkins
比如要用 Docker:
sudo usermod -aG docker jenkins
要用普通用户权限执行命令(如部署到某目录):
sudo usermod -aG yourgroup jenkins
改完组后,重启 Jenkins
sudo systemctl restart jenkins
Jenkins 工作目录:
/var/lib/jenkins
如果你让 Jenkins 操作其他目录,例如 /opt/app:
sudo chown -R jenkins:jenkins /opt/app
# 或
sudo chmod -R 775 /opt/app
Role-based Authorization Strategy
Manage Jenkins → Security
Role-Based StrategyManage Jenkins → Manage and Assign Roles
Global roles
admin → 全部权限dev → 只读 / 构建Item roles
project-A → 匹配 project-A.*Assign Roles
sudo xxx
jenkins 用户 特定 sudo NOPASSWDsudo visudo
jenkins ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
❌ Jenkins 无法写目录
✅ 检查 jenkins 用户 + 目录 owner
❌ Docker 命令无权限
✅ jenkins 加入 docker 组
❌ 改权限后不生效
✅ 重启 Jenkins / 重新登录
如果你能说下你是:
我可以直接给你一套 可复制的配置方案。