避免使用root运行Jenkins(存在安全风险),创建专用用户(如jenkins_admin)并设置密码:
sudo useradd jenkins_admin
sudo passwd jenkins_admin
将Jenkins关键目录(数据、缓存、日志)的所有权转移至专用用户,确保服务正常读写:
sudo chown -R jenkins_admin:jenkins_admin /var/lib/jenkins # Jenkins主目录(存储任务、配置)
sudo chown -R jenkins_admin:jenkins_admin /var/cache/jenkins # 缓存目录
sudo chown -R jenkins_admin:jenkins_admin /var/log/jenkins # 日志目录
编辑/etc/sysconfig/jenkins(CentOS系统配置文件),将启动用户改为专用用户:
sudo vim /etc/sysconfig/jenkins
# 找到JENKINS_USER行,修改为:
JENKINS_USER="jenkins_admin"
JENKINS_GROUP="jenkins_admin" # 可选:同步修改组
修改后重启Jenkins服务使配置生效:
sudo systemctl restart jenkins
sudo systemctl enable jenkins # 设置开机自启
允许Jenkins默认端口(8080)的外部访问(若使用其他端口需替换):
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
登录Jenkins管理界面(http://<服务器IP>:8080),进入Manage Jenkins → Manage Plugins:
进入Manage Jenkins → Configure Global Security:
进入Manage Jenkins → Manage and Assign Roles → Manage Roles:
admin、viewer)。admin角色:勾选“Overall → Administer”(拥有所有权限,仅分配给管理员)。viewer角色:勾选“Overall → Read”(仅能查看构建历史、任务列表,无修改权限)。继续在“Manage Roles”页面:
dev-project-*、ops-project-*)。dev-project-*:匹配所有以“dev-project-”开头的项目(如dev-project-web、dev-project-api)。ops-project-*:匹配所有以“ops-project-”开头的项目(如ops-project-backup)。dev-project-*角色:勾选“Item → Build”“Item → Cancel”“Item → Read”(允许开发人员构建、取消任务)。ops-project-*角色:勾选“Item → Read”“Item → Delete”(允许运维人员查看、删除任务)。进入Manage Jenkins → Manage and Assign Roles → Assign Roles:
dev_user1)添加至viewer角色(基础查看权限)。dev_user1添加至dev-project-*角色(开发项目操作权限)。ops_user1添加至viewer角色和ops-project-*角色(运维项目操作权限)。dev_user1登录Jenkins,尝试访问dev-project-*项目(应能构建、查看),访问ops-project-*项目(应提示无权限)。ops_user1登录Jenkins,尝试删除ops-project-backup项目(应能成功),尝试修改dev-project-web项目(应提示无权限)。/var/lib/jenkins/config.xml(Jenkins核心配置文件)。root用户运行Jenkins(增加安全漏洞风险)。