在 Linux 上配置 GitLab 权限,通常分为 系统层(Linux 用户/目录权限) 和 GitLab 应用层(项目/组/角色权限) 两部分。下面按常见场景给你说明。
GitLab 权限基于 角色(Role):
| 角色 | 权限说明 |
|---|---|
| Guest | 只能看 Issue、Wiki |
| Reporter | 只读代码 |
| Developer | 推送代码、建分支 |
| Maintainer | 管理分支、成员、Runner |
| Owner | 最高权限(删除项目) |
# 登录 GitLab Web
项目 → Settings → Members
添加用户并选择角色即可。
命令行(管理员)示例:
gitlab-rails console
user = User.find_by(username: 'zhangsan')
project = Project.find_by(full_path: 'group/demo')
project.add_developer(user)
适合多项目统一管理:
Group → Members → 添加用户
组权限会继承到下属项目。
GitLab 默认使用:
git:git
查看:
ps aux | grep gitlab
GitLab 仓库路径(默认):
/var/opt/gitlab/git-data/repositories
不要手动改权限,应由 GitLab 管理:
gitlab-ctl reconfigure
# 用户本机
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub
GitLab:
User → Preferences → SSH Keys
vi /etc/ssh/sshd_config
PasswordAuthentication no
systemctl restart sshd
gitlab-rails console
user = User.find_by(username: 'admin')
user.admin = true
user.save
user.password = 'NewPass123'
user.password_confirmation = 'NewPass123'
user.save
# GitLab 状态
gitlab-ctl status
# 日志
gitlab-ctl tail
# 权限错误
sudo gitlab-rake gitlab:check
我可以给你更精确的配置,例如:
main 分支你可以直接说你的使用场景。