在 Linux 上自建 GitLab 中,“限制权限”通常可以从 系统层、GitLab 用户/组权限、项目权限、分支保护、SSH/HTTPS 访问 几个层面来做。下面按常见场景说明。
GitLab 内置角色:
Project → Members✅ 推荐:普通人给 Developer,管理员给 Maintainer
防止开发者直接推 main/master
Project → Settings → Repository → Protected branches
常见配置:
main 分支
develop
✅ 效果:Developer 不能直接 push main
Admin → Settings → General → Account and limit
可限制:
如果是公司内部:
GitLab 用户只是 Web 用户,不应有 Linux SSH 权限
# 查看 gitlab 相关用户
getent passwd | grep git
不要给普通开发:
/home/git/var/opt/gitlab# 只允许公司 IP
ufw allow from 10.0.0.0/8 to any port 80
ufw allow from 10.0.0.0/8 to any port 443
User → Preferences → SSH Keys
可:
# /etc/ssh/sshd_config
PasswordAuthentication no
Group → Members
✅ 好处:
Admin → Monitoring → Audit Events
可看到:
✅ 最小权限
✅ main 分支保护
✅ 关闭公开注册
✅ 使用 Group 管理
✅ 禁止 Linux 直接登录
✅ 定期审计日志
如果你能说明:
我可以给你一套可直接落地的权限方案。