温馨提示×

jenkins在centos如何权限

小樊
45
2026-10-20 20:02:57
栏目: 智能运维

在 CentOS 上部署或使用 Jenkins 时,“权限”通常涉及以下几个方面,下面我按常见场景给你说明:


一、Jenkins 运行用户与权限

1. Jenkins 默认用户

CentOS 通过 RPM 安装 Jenkins 后,默认使用 jenkins 用户运行:

cat /etc/passwd | grep jenkins

Jenkins 主目录一般位于:

/var/lib/jenkins

2. 修改 Jenkins 运行用户(可选)

编辑:

vim /etc/sysconfig/jenkins

修改:

JENKINS_USER="jenkins"

例如改为 root(不推荐,仅测试环境):

JENKINS_USER="root"

修改后:

chown -R root:root /var/lib/jenkins
systemctl restart jenkins

二、文件与目录权限问题(最常见)

1. Jenkins 无法访问目录

例如构建时需要访问 /opt/app:

chown -R jenkins:jenkins /opt/app
chmod -R 755 /opt/app

2. 使用 sudo 执行命令

在 Jenkins 中执行需要 root 权限的命令:

visudo

添加:

jenkins ALL=(ALL) NOPASSWD: ALL

Jenkins 脚本中:

sudo systemctl restart nginx

三、Jenkins Web 登录权限(账号权限)

1. 开启权限控制

Manage Jenkins → Configure Global Security

  • 勾选 Enable security
  • 选择:
    • Jenkins’ own user database
    • 授权策略:Matrix Authorization Strategy

2. 常见角色权限

  • Admin:全部权限
  • Developer:构建、查看
  • Anonymous:无权限

四、Jenkins 与 Docker 权限(CentOS 常见)

问题

Permission denied while trying to connect to Docker daemon

解决

将 jenkins 用户加入 docker 组:

usermod -aG docker jenkins
systemctl restart jenkins

⚠️ 如果 Jenkins 是容器运行,需挂载 /var/run/docker.sock


五、Jenkins 端口与防火墙权限

1. 修改端口

vim /etc/sysconfig/jenkins
JENKINS_PORT="8080"

2. 防火墙放行

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

六、SELinux 导致的权限问题(CentOS 特有)

查看:

getenforce

临时关闭(不推荐生产):

setenforce 0

正确做法(示例):

setsebool -P httpd_can_network_connect 1

七、Jenkins 容器运行时的权限(补充)

docker run -d \
  -u root \
  -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins

如果你能具体说明是 哪一类权限问题(例如:构建报错、无法访问文件、Docker、sudo、Web 登录),我可以给你更精准的方案。

0 踩