Jenkins默认以jenkins系统用户运行,若需变更运行用户或调整目录权限,需完成以下步骤:
sudo adduser jenkins-admin # 创建用户
sudo passwd jenkins-admin # 设置密码
sudo usermod -aG jenkins jenkins-admin
JENKINS_USER设置为新用户。
/etc/default/jenkins/etc/sysconfig/jenkinsJENKINS_USER="jenkins-admin"
sudo chown -R jenkins-admin:jenkins-admin /var/lib/jenkins # 数据目录
sudo chown -R jenkins-admin:jenkins-admin /var/cache/jenkins # 缓存目录
sudo chown -R jenkins-admin:jenkins-admin /var/log/jenkins # 日志目录
sudo systemctl restart jenkins
以上步骤确保Jenkins以指定用户运行,避免权限不足导致的文件访问问题。
基础配置仅能控制用户是否能访问Jenkins,若需按角色分配权限(如开发、测试、运维人员不同权限),需安装并配置Role-based Authorization Strategy插件:
Manage Jenkins→Manage Plugins→Available标签→搜索“Role-based Authorization Strategy”→点击Install without restart。Manage Jenkins→Configure Global Security→勾选Enable security→在Authorization部分选择Role-Based Strategy。Manage Jenkins→Manage and Assign Roles→Manage Roles,创建以下角色:
Overall: Administer表示管理员权限,Overall: Read表示只读)。dev-.*匹配所有以“dev-”开头的项目,分配Build、Cancel权限给开发人员)。linux-node-.*匹配Linux节点,分配Slave: Connect权限)。Manage and Assign Roles→Assign Roles,将用户添加到对应角色(如将dev-user添加到dev-roles项目角色)。Jenkins执行自动化任务(如打包、部署)时,常因权限不足导致失败(如无法写入目标目录)。需调整相关目录权限:
ps aux | grep jenkins查看进程用户,确保后续操作针对该用户。/opt/app目录,执行以下命令:sudo chown -R jenkins-admin:jenkins-admin /opt/app # 将目录归属改为Jenkins用户
sudo chmod -R 755 /opt/app # 授予读写执行权限(根据需求调整,如750更严格)
apt install),可通过sudoers文件为Jenkins用户添加无密码执行权限(需严格控制命令范围,避免安全风险):sudo visudo
# 添加以下行(替换jenkins-admin为实际用户)
jenkins-admin ALL=(ALL) NOPASSWD: /usr/bin/apt install *
在Jenkins任务的Execute shell脚本中,使用sudo执行特权命令:sudo apt install -y some-package
Manage Jenkins→Configure Global Security→Security Realm选择LDAP,实现企业用户统一管理,避免重复创建账号。/var/lib/jenkins目录),进一步提升安全性。