温馨提示×

linux gitlab权限怎么配置

小樊
51
2026-10-19 03:10:50
栏目: 智能运维

在 Linux 上配置 GitLab 权限,通常分为 系统层(Linux 用户/目录权限) 和 GitLab 应用层(项目/组/角色权限) 两部分。下面按常见场景给你说明。


一、GitLab 应用层权限(最常用)

1. GitLab 用户角色

GitLab 权限基于 角色(Role):

角色 权限说明
Guest 只能看 Issue、Wiki
Reporter 只读代码
Developer 推送代码、建分支
Maintainer 管理分支、成员、Runner
Owner 最高权限(删除项目)

2. 项目级权限配置

# 登录 GitLab Web
项目 → Settings → Members

添加用户并选择角色即可。

命令行(管理员)示例:

gitlab-rails console
user = User.find_by(username: 'zhangsan')
project = Project.find_by(full_path: 'group/demo')
project.add_developer(user)

二、GitLab 组(Group)权限

适合多项目统一管理:

Group → Members → 添加用户

组权限会继承到下属项目。


三、Linux 系统层权限(GitLab 服务器)

1. GitLab 运行用户

GitLab 默认使用:

git:git

查看:

ps aux | grep gitlab

2. 仓库目录权限

GitLab 仓库路径(默认):

/var/opt/gitlab/git-data/repositories

不要手动改权限,应由 GitLab 管理:

gitlab-ctl reconfigure

四、SSH 权限配置(用户访问)

1. 用户添加 SSH Key

# 用户本机
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub

GitLab:

User → Preferences → SSH Keys

2. 禁止密码登录(安全)

vi /etc/ssh/sshd_config
PasswordAuthentication no
systemctl restart sshd

五、管理员权限配置

1. 设置管理员

gitlab-rails console
user = User.find_by(username: 'admin')
user.admin = true
user.save

2. 重置密码

user.password = 'NewPass123'
user.password_confirmation = 'NewPass123'
user.save

六、常见权限问题排查

# GitLab 状态
gitlab-ctl status

# 日志
gitlab-ctl tail

# 权限错误
sudo gitlab-rake gitlab:check

七、你具体是哪类需求?

我可以给你更精确的配置,例如:

  • ✅ 只允许某些人推送 main 分支
  • ✅ CI/CD 权限控制
  • ✅ 外部用户只读访问
  • ✅ GitLab + LDAP / AD 权限
  • ✅ 服务器目录安全加固

你可以直接说你的使用场景。

0 踩