温馨提示×

ubuntu jenkins如何权限

小樊
41
2026-09-19 10:31:47
栏目: 智能运维

在 Ubuntu 上部署 Jenkins 时,“权限”通常涉及几个层面。下面我按常见场景给你系统讲一下,你可以按需对照。


一、Jenkins 自身的访问权限(Web 登录)

1. 开启用户权限控制

  1. 登录 Jenkins
  2. Manage JenkinsSecurity
  3. 勾选:
    • Enable security
  4. 安全域选:
    • Jenkins’ own user database
  5. 授权策略选(新手推荐):
    • Matrix Authorization Strategy(更细)
    • Logged-in users can do anything(简单)

✅ 保存后,先创建一个管理员账号


2. 创建用户

Manage JenkinsUsersCreate User


3. 给用户分配权限(Matrix)

  • Admin:全部勾选
  • 普通开发:
    • Job → Build / Read
    • 不勾 Cancel / Configure

二、Ubuntu 系统级权限(重要)

1. Jenkins 默认用户

Ubuntu 上 Jenkins 默认运行用户是:

jenkins

查看:

ps aux | grep jenkins

2. Jenkins 目录权限

Jenkins 主目录:

/var/lib/jenkins

设置正确权限:

sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chmod 755 /var/lib/jenkins

3. 让 Jenkins 能执行系统命令(如 docker、sudo)

场景 A:Jenkins 使用 docker

把 jenkins 加入 docker 组:

sudo usermod -aG docker jenkins

重启 Jenkins:

sudo systemctl restart jenkins

验证:

sudo -u jenkins docker ps

场景 B:Jenkins 需要 sudo 权限

编辑 sudoers(安全做法):

sudo visudo

添加:

jenkins ALL=(ALL) NOPASSWD: /usr/bin/systemctl, /bin/bash

Pipeline 示例:

sh 'sudo systemctl restart nginx'

⚠️ 不建议给 jenkins 全部 sudo 权限


三、Jenkins 访问 Git / SSH 权限

1. 使用 jenkins 用户生成 SSH Key

sudo -u jenkins ssh-keygen -t rsa -b 4096

公钥放到 Git 服务器:

cat /var/lib/jenkins/.ssh/id_rsa.pub

2. Jenkins 中配置凭据

Manage JenkinsCredentials

  • 类型:SSH Username with private key
  • 粘贴私钥内容

四、文件 / 部署目录权限

如果 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


如果你能告诉我:

  • Jenkins 网页权限 还是 Ubuntu 执行权限
  • 是否用到 Docker / Git / 部署服务器

我可以给你更精确的配置示例

0