在 Linux 上部署或管理 GitLab 的权限,通常涉及 系统层权限 和 GitLab 应用层权限 两部分。下面按常见场景给你一个清晰说明。
GitLab 安装后通常使用:
gitgit/opt/gitlab(程序)/var/opt/gitlab(数据)/etc/gitlab(配置)sudo chown -R git:git /var/opt/gitlab
sudo chmod -R 755 /var/opt/gitlab
⚠️ 不建议手动改 /opt/gitlab,否则可能破坏 GitLab。
sudo ufw allow 80
sudo ufw allow 443
或 CentOS:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
| 角色 | 权限 |
|---|---|
| Guest | 只读 |
| Reporter | 查看代码 |
| Developer | 提交代码 |
| Maintainer | 管理项目 |
| Owner | 完全控制 |
进入项目:
Settings → Members
添加用户并选择角色。
Groups → Your Group → Members
组权限会自动继承到组内项目。
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub
粘贴到:
GitLab → User → Preferences → SSH Keys
ssh -T git@your-gitlab-domain
项目 → Settings → Repository → Protected Branches
可设置:
sudo gitlab-rails console
user = User.where(id: 1).first
user.password = 'newpassword'
user.save!
Permission denied (publickey)✅ 检查:
git@ 而不是 http403 Forbidden✅ 用户无项目访问权限
You are not allowed to push code✅ 分支被保护 / 角色不足
如果你能说具体一点,比如:
我可以直接给你对应命令或配置示例。