在 Ubuntu 上部署 Jenkins 时,“权限”通常涉及以下几个方面,下面按常见场景给你说明:
Ubuntu 上通过官方包安装 Jenkins 后,默认使用 jenkins 用户运行:
cat /etc/default/jenkins
# 或
ps -ef | grep jenkins
Jenkins 主目录默认在:
/var/lib/jenkins
/var/log/jenkins
/var/cache/jenkins
如果需要手动操作:
sudo chown -R jenkins:jenkins /var/lib/jenkins
很多构建任务需要执行 docker、systemctl、apt 等命令。
sudo usermod -aG sudo jenkins
sudo visudo
添加:
jenkins ALL=(ALL) NOPASSWD: ALL
或只给特定命令:
jenkins ALL=(ALL) NOPASSWD: /usr/bin/docker, /bin/systemctl
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
验证:
sudo -u jenkins docker ps
Manage Jenkins → Security → Enable security
常用:
Manage Jenkins → Plugin Manager → Role-based Authorization Strategy
如果 Jenkins 要读取项目目录:
sudo chown -R jenkins:jenkins /data/project
# 或
sudo chmod -R 775 /data/project
Jenkins 默认端口:
8080
开放端口:
sudo ufw allow 8080
| 错误 | 原因 | 解决 |
|---|---|---|
| Permission denied | 文件属主不是 jenkins | chown jenkins |
| docker: permission denied | 不在 docker 组 | usermod -aG docker |
| sudo: no tty | Jenkins 无终端 | 配置 NOPASSWD |
| 403 无权限 | 未登录/无角色 | 配置 RBAC |
如果你能具体说一下是 哪一类权限问题(比如:
我可以直接给你对应的解决方案。