在 CentOS 上配置 Jenkins 权限,通常包含以下几个层面:
下面按常见场景详细说明。
默认安装后,Jenkins 通常以 jenkins 用户运行:
ps -ef | grep jenkins
或查看服务文件:
cat /etc/sysconfig/jenkins | grep JENKINS_USER
示例:
JENKINS_USER="jenkins"
如果希望用其他用户(如 www 或 root,不推荐 root):
sudo vi /etc/sysconfig/jenkins
修改:
JENKINS_USER="jenkins"
修改目录属主:
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chown -R jenkins:jenkins /var/log/jenkins
sudo chown -R jenkins:jenkins /var/cache/jenkins
重启 Jenkins:
sudo systemctl restart jenkins
如果构建脚本需要执行系统命令:
sudo visudo
添加:
jenkins ALL=(ALL) NOPASSWD: ALL
或只给特定命令:
jenkins ALL=(ALL) NOPASSWD: /usr/bin/docker, /bin/systemctl
进入:
Jenkins → Manage Jenkins → Security
Manage Jenkins → Manage Plugins
安装:
Manage Jenkins → Manage and Assign Roles
(1)Manage Roles
project-.*)(2)Assign Roles
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
验证:
sudo -u jenkins docker ps
例如构建时需要写入 /opt/app:
sudo chown -R jenkins:jenkins /opt/app
sudo chmod -R 755 /opt/app
sudo journalctl -u jenkins -f
常见原因:
/var/lib/jenkins 权限错误sudo systemctl stop jenkins
sudo rm /var/lib/jenkins/users/admin/config.xml
sudo systemctl start jenkins
如果你能说明:
我可以给你更精确的配置方案。