在 Debian 上部署的 GitLab(无论是 Omnibus 包还是源码安装),“调权限”通常涉及 用户/组权限、项目权限、仓库权限、系统文件权限 等几个层面。下面按常见场景给你说明。
GitLab 默认使用 git 用户运行:
ps aux | grep gitlab
不要手动改 /var/opt/gitlab 或 /home/git 的属主,否则会导致 GitLab 无法启动。
如果权限异常:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
更彻底修复权限:
sudo gitlab-rake gitlab:check
在项目 → Members 中添加用户,角色包括:
| 角色 | 权限 |
|---|---|
| Guest | 看 Issue、Wiki |
| Reporter | 只读代码 |
| Developer | 提交代码、建分支 |
| Maintainer | 管理分支、合并、设置 |
| Owner | 完全控制 |
示例(Web):
Project → Members → Invite member → Role: Developer
在 Group → Members 中设置,子项目可继承组权限。
Project → Settings → Repository → Protected branches
可设置:
例如只允许 Maintainer 合并 main 分支。
在 Protected Branch 中:
User → Preferences → SSH Keys
用户无 Key 不能 clone/push(除非用 Personal Access Token)。
Project → Settings → Repository → Deploy keys
User → Preferences → Access Tokens
权限范围:
Project → Settings → Access Tokens
Admin → Users → 编辑用户 → Admin 勾选
⚠️ Admin 可控制整个 GitLab,谨慎授予。
sudo gitlab-ctl status
sudo gitlab-rake gitlab:check
你可以告诉我:
gitlab-rake gitlab:env:info)我可以直接给你对应命令或配置示例。