Debian系统上做好 GitLab 权限管理,建议从系统层访问控制、GitLab 内置角色与项目访问控制、以及分支与合规策略三层入手,既保证安全,又兼顾开发效率。
sudo ufw allow 80/tcp、sudo ufw allow 443/tcp、sudo ufw enable。如使用 Docker 部署,还需映射相应端口。完成后可验证访问与端口连通性。sudo chown -R gitlab-psql:gitlab /var/opt/gitlab、sudo chown -R gitlab:gitlab /var/log/gitlab、sudo chmod -R 755 /var/opt/gitlab /var/log/gitlab。ssh-keygen -t rsa -b 4096 -C "email",将公钥粘贴到用户 Settings → SSH Keys。gitlab_rails['user_registration'] = true/false(是否允许自助注册)、gitlab_rails['default_namespace'] = 'groups'(新项目默认归属到组),变更后执行 sudo gitlab-ctl reconfigure 生效。gitlab_rails['default_projects_features'] 设置新项目的默认功能开关(如 issues、merge_requests、wiki、snippets),统一团队基线;按需调整 gitlab_rails['default_projects_access_level'] 的默认访问级别,减少过度授权。gitlab_rails['ldap_enabled'] = true、服务器地址、端口、绑定 DN、搜索基准与过滤规则;变更后执行 sudo gitlab-ctl reconfigure 使配置生效。| 检查项 | 推荐做法 | 关键命令或路径 |
|---|---|---|
| 访问面最小化 | 仅开放 80/443(必要时 22) | sudo ufw allow 80/tcp;sudo ufw allow 443/tcp |
| 目录权限 | 数据/日志目录属主与权限正确 | chown -R gitlab-psql:gitlab /var/opt/gitlab;chown -R gitlab:gitlab /var/log/gitlab |
| 角色分配 | 以组为单位授予 Developer/Maintainer/Owner | 项目 Settings → Members |
| 分支保护 | 保护 main/develop,限制强制推送与合并 | 项目 Settings → Repository → Protected Branches |
| 身份源 | 使用 LDAP 集中认证 | /etc/gitlab/gitlab.rb 中 LDAP 配置 |
| 变更生效 | 修改 gitlab.rb 后重载 | sudo gitlab-ctl reconfigure |
以上要点覆盖了从系统到应用、从身份到分支的权限治理关键面,按此实施可在 Debian 上构建安全、可控且易运维的 GitLab 权限体系。