下面分 GitLab 自托管(Linux 服务器) 和 GitLab 权限模型本身 两块说明,避免混淆。
如果你说的是 Linux 上装 GitLab 的权限配置:
GitLab 默认使用 git 用户运行:
id git
仓库目录默认在:
/var/opt/gitlab/git-data/repositories
权限建议:
chown -R git:git /var/opt/gitlab
⚠️ 不要手动改仓库目录里文件的权限,GitLab 会自己管理。
用户通过 SSH 拉代码,依赖:
/home/git/.ssh/authorized_keys
普通用户 不能 直接登录 git 用户(被禁止 shell):
git:x:997:997::/var/opt/gitlab:/bin/git-shell
# HTTP
sudo ufw allow 80
# HTTPS
sudo ufw allow 443
# SSH(如改端口)
sudo ufw allow 22
如果你问的是 怎么给成员配权限,看这里。
Instance (管理员)
└── Group(组)
└── Project(项目)
| 角色 | 权限 |
|---|---|
| Guest | 看 issue、看 README |
| Reporter | 拉代码、提 issue |
| Developer | 推代码、建分支 |
| Maintainer | 管理成员、保护分支 |
| Owner | 删除项目、转组 |
Group 级(推荐)
Group → Members → Invite member
Project 级
Project → Members → Invite member
Project → Repository → Branches → Protected branches
常见配置:
main / master:只允许 Maintainer 推送develop:Developer 可推main 分支:
Push: Maintainers
Merge: Maintainers
Developer 只能走 MR。
用 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"
如果你能具体说:
我可以直接给你一套可复制的配置。