在Ubuntu上安装Jenkins并启动服务是权限管理的基础。使用以下命令完成安装:
sudo apt update
sudo apt install jenkins
安装完成后,启动Jenkins服务并设置开机自启:
sudo systemctl start jenkins
sudo systemctl enable jenkins
默认情况下,Jenkins以jenkins系统用户运行。若需调整运行用户(如改为jenkins-admin),需完成以下步骤:
jenkins组:sudo adduser jenkins-admin
sudo usermod -aG jenkins jenkins-admin
/etc/default/jenkins,更新JENKINS_USER参数:JENKINS_USER=jenkins-admin
sudo systemctl restart jenkins
权限管理的核心是启用安全功能。登录Jenkins Web界面(默认地址http://<服务器IP>:8080),依次进入:
Manage Jenkins → Configure Global Security
Jenkins’ own user database(使用Jenkins自带用户数据库);Jenkins默认无细粒度权限控制,需安装插件扩展功能。推荐使用Role-based Authorization Strategy(基于角色的授权策略):
Manage Jenkins → Manage Plugins;Manage Jenkins → Configure Global Security,将Authorization设置为Role-Based Strategy,保存配置。通过Manage and Assign Roles插件实现角色化管理,步骤如下:
Manage Jenkins → Manage and Assign Roles → Manage Roles,点击Add创建全局角色(如admin、developer);admin角色勾选Overall: Administer,developer角色勾选Overall: Read、Job: Build)。Manage Roles页面点击Add,输入角色名称(如project1-developer),在Pattern栏填写项目名称正则(如project1.*);Job: Build、Job: Cancel)。Manage Users创建用户(如dev-user);Manage and Assign Roles → Assign Roles,将用户添加到对应角色(如dev-user添加到developer全局角色和project1-developer项目角色)。创建测试任务(如test-job),使用不同角色用户登录:
admin用户应能访问所有功能(如配置任务、查看系统日志);developer用户仅能构建project1.*项目下的任务,无法访问其他项目或系统设置。ufw)允许Jenkins端口(默认8080)访问:sudo ufw allow 8080/tcp
通过以上步骤,可在Ubuntu上实现Jenkins的精细化权限管理,确保不同用户仅能访问其授权的资源,提升系统安全性。