温馨提示×

linux gitlab权限怎么配

小樊
39
2026-09-25 17:58:59
栏目: 智能运维

下面分 GitLab 自托管(Linux 服务器) 和 GitLab 权限模型本身 两块说明,避免混淆。


一、Linux 服务器层面(GitLab 安装/运行权限)

如果你说的是 Linux 上装 GitLab 的权限配置:

1. 用户与目录权限

GitLab 默认使用 git 用户运行:

id git

仓库目录默认在:

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

权限建议:

chown -R git:git /var/opt/gitlab

⚠️ 不要手动改仓库目录里文件的权限,GitLab 会自己管理。

2. SSH 访问权限

用户通过 SSH 拉代码,依赖:

/home/git/.ssh/authorized_keys

普通用户 不能 直接登录 git 用户(被禁止 shell):

git:x:997:997::/var/opt/gitlab:/bin/git-shell

3. 防火墙 / 端口

# HTTP
sudo ufw allow 80
# HTTPS
sudo ufw allow 443
# SSH(如改端口)
sudo ufw allow 22

二、GitLab 项目 / 组权限(重点)

如果你问的是 怎么给成员配权限,看这里。

1. 权限层级

Instance (管理员)
 └── Group(组)
      └── Project(项目)

2. 用户角色(Project / Group)

角色 权限
Guest 看 issue、看 README
Reporter 拉代码、提 issue
Developer 推代码、建分支
Maintainer 管理成员、保护分支
Owner 删除项目、转组

3. 添加成员

Group 级(推荐)

Group → Members → Invite member

Project 级

Project → Members → Invite member

4. 保护分支(非常重要)

Project → Repository → Branches → Protected branches

常见配置:

  • main / master:只允许 Maintainer 推送
  • develop:Developer 可推

5. 禁止直接推 main(最佳实践)

main 分支:
Push: Maintainers
Merge: Maintainers

Developer 只能走 MR。


三、常见场景配置示例

✅ 小团队

  • 建 Group
  • Developer 给所有人
  • 1 个 Maintainer 管合并

✅ 外包 / 外部人员

  • Guest 或 Reporter
  • 不开 SSH,只用 HTTPS
  • 限制到具体 Project

✅ CI / 自动化

用 Project Access Token 或 Deploy Token

Settings → Access Tokens

四、排错常用命令

# 查看 GitLab 状态
sudo gitlab-ctl status

# 查看用户
sudo gitlab-rails runner "User.all.each { |u| puts u.username }"

# 重置管理员密码
sudo gitlab-rake "gitlab:password:reset"

如果你能具体说:

  • 是 Linux 系统权限
  • 还是 GitLab 用户/分支权限
  • 还是 SSH / CI 权限

我可以直接给你一套可复制的配置。

0 踩