下面按常见场景给你讲 Linux 上 GitLab 权限配置,分为 系统/目录权限、GitLab 用户与项目权限、SSH / HTTPS 访问权限 三块。
GitLab 默认使用:
git:x:997:997:GitLab:/var/opt/gitlab:/bin/sh
不要手动改 /var/opt/gitlab、/etc/gitlab 权限,否则 GitLab 会崩。
/var/opt/gitlab # 数据
/etc/gitlab # 配置
/var/log/gitlab # 日志
属主应为:
root:root /etc/gitlab
git:git /var/opt/gitlab
Admin Area → Users
角色:
进入项目 → Members
| 角色 | 权限 |
|---|---|
| Guest | 只看 issue、wiki |
| Reporter | 拉代码、提 issue |
| Developer | 推代码、建分支 |
| Maintainer | 管理成员、保护分支 |
| Owner | 项目删除、转移 |
示例:
张三 -> Developer
李四 -> Maintainer
项目 → Settings → Repository → Protected branches
常见配置:
main / master
Developer 只能提 MR。
# /etc/ssh/sshd_config
PasswordAuthentication no
重启:
systemctl restart sshd
用户 → Preferences → SSH Keys
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub
Group → Members
可统一给团队设权限,项目继承 Group 权限。
❌ 手动改 /var/opt/gitlab 权限
❌ Developer 直接 push master
❌ 用 root 跑 git 操作
✅ 用 git 用户 + SSH Key
✅ 用 MR + 分支保护
如果你说的是:
可以直接告诉我你的具体场景,我给你精确命令。