温馨提示×

linux gitlab怎么限制权限

小樊
41
2026-10-01 13:36:19
栏目: 智能运维

在 Linux 上自建 GitLab 中,“限制权限”通常可以从 系统层、GitLab 用户/组权限、项目权限、分支保护、SSH/HTTPS 访问 几个层面来做。下面按常见场景说明。


一、GitLab 用户与角色权限(最常用)

GitLab 内置角色:

  • Guest:只能看 Issue、Wiki
  • Reporter:只读代码
  • Developer:可推送代码(受分支保护限制)
  • Maintainer:管理项目
  • Owner:项目最高权限

操作方式

  1. 进入项目
    Project → Members
  2. 添加用户或组
  3. 选择角色(建议最小权限原则)

✅ 推荐:普通人给 Developer,管理员给 Maintainer


二、限制分支推送(非常重要)

保护分支(Protected Branches)

防止开发者直接推 main/master

Project → Settings → Repository → Protected branches

常见配置:

  • main 分支
    • Allowed to push: Maintainers
    • Allowed to merge: Maintainers
  • develop
    • Developers + Maintainers

✅ 效果:Developer 不能直接 push main


三、限制谁能创建项目 / 组(管理员层面)

全局限制

Admin → Settings → General → Account and limit

可限制:

  • 是否允许用户创建组
  • 单用户最大项目数
  • 是否开放注册

如果是公司内部:

  • 关闭注册
  • 手动创建账号

四、Linux 系统层权限限制(服务器安全)

1. 禁止普通用户登录 GitLab 服务器

GitLab 用户只是 Web 用户,不应有 Linux SSH 权限

# 查看 gitlab 相关用户
getent passwd | grep git

不要给普通开发:

  • /home/git
  • /var/opt/gitlab

2. 防火墙限制访问

# 只允许公司 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

五、SSH / HTTPS 访问控制

限制 SSH Key

User → Preferences → SSH Keys

可:

  • 限制 Key 类型(RSA / ED25519)
  • 设置过期时间

禁用密码登录(推荐)

# /etc/ssh/sshd_config
PasswordAuthentication no

六、使用 Group 统一管理权限(推荐)

Group → Members
  • 部门 → Group
  • 项目 → Subgroup
  • 用户只加进 Group

✅ 好处:

  • 权限统一
  • 离职只删 Group 成员

七、审计与日志(防止滥用)

Admin → Monitoring → Audit Events

可看到:

  • 谁删了项目
  • 谁改了权限
  • 谁强制推送

八、常见安全建议总结

✅ 最小权限
✅ main 分支保护
✅ 关闭公开注册
✅ 使用 Group 管理
✅ 禁止 Linux 直接登录
✅ 定期审计日志


如果你能说明:

  • GitLab 版本(CE / EE)
  • 是 公司内网 还是 公网
  • 想限制的是 人 / 分支 / 项目 / 服务器

我可以给你一套可直接落地的权限方案。

0 踩