在 Ubuntu 上部署 Jenkins 时,“权限”通常涉及几个层面。下面我按常见场景给你系统讲一下,你可以按需对照。
Manage Jenkins → SecurityJenkins’ own user databaseMatrix Authorization Strategy(更细)Logged-in users can do anything(简单)✅ 保存后,先创建一个管理员账号
Manage Jenkins → Users → Create User
Ubuntu 上 Jenkins 默认运行用户是:
jenkins
查看:
ps aux | grep jenkins
Jenkins 主目录:
/var/lib/jenkins
设置正确权限:
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chmod 755 /var/lib/jenkins
把 jenkins 加入 docker 组:
sudo usermod -aG docker jenkins
重启 Jenkins:
sudo systemctl restart jenkins
验证:
sudo -u jenkins docker ps
编辑 sudoers(安全做法):
sudo visudo
添加:
jenkins ALL=(ALL) NOPASSWD: /usr/bin/systemctl, /bin/bash
Pipeline 示例:
sh 'sudo systemctl restart nginx'
⚠️ 不建议给 jenkins 全部 sudo 权限
sudo -u jenkins ssh-keygen -t rsa -b 4096
公钥放到 Git 服务器:
cat /var/lib/jenkins/.ssh/id_rsa.pub
Manage Jenkins → Credentials
如果 Jenkins 要写项目目录:
sudo chown -R jenkins:jenkins /opt/myapp
或:
sudo usermod -aG www-data jenkins
| 问题 | 原因 | 解决 |
|---|---|---|
| Permission denied | jenkins 无文件权限 | chown jenkins |
| docker: permission | 不在 docker 组 | usermod -aG docker |
| sudo: no tty | pipeline 用 sudo | NOPASSWD sudoers |
| git clone 失败 | SSH key 错 | 用 jenkins 用户生成 |
✅ Jenkins 只拥有它需要的权限
❌ 不要把 jenkins 加进 sudo / root
如果你能告诉我:
我可以给你更精确的配置示例。