在 Debian 上部署的 GitLab 中,“权限设置”通常包含 系统层(Linux 文件/用户权限) 和 GitLab 应用层(项目/用户/组权限) 两部分。下面按常见场景说明。
GitLab 安装后会创建:
gitgitlab-www、redis、postgres 等/var/opt/gitlab:数据/etc/gitlab:配置/var/log/gitlab:日志⚠️ 不要手动改 /var/opt/gitlab 的属主
如果权限异常,使用:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
修复权限:
sudo chown -R git:git /var/opt/gitlab/git-data
Debian 常用:
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 22
GitLab 用户权限等级:
进入项目:
Settings → Members
添加用户并选择角色。
命令行(管理员):
sudo gitlab-rails console
示例:
user = User.find_by(username: 'zhangsan')
project = Project.find_by(full_path: 'group/project')
project.add_developer(user)
Group → Members
防止误推 master:
Project → Settings → Repository → Protected branches
建议:
main / master:Maintainer 可推用户自己添加:
User → Preferences → SSH Keys
Project → Settings → Repository → Deploy Keys
适合:
创建管理员:
sudo gitlab-rails console
user = User.find_by(email: 'admin@example.com')
user.admin = true
user.save!
| 问题 | 原因 |
|---|---|
| 403 | 用户无项目权限 |
| push 被拒 | 分支被保护 |
| 无法 clone | SSH key 未添加 |
| 页面打不开 | Debian 防火墙 |
如果你是指 “GitLab 安装在 Debian 上的文件权限” 或 “某个具体场景(如 CI、LDAP、Docker)”,可以告诉我,我给你更精确的配置。