温馨提示×

linux gitlab怎么权限

小樊
42
2026-10-07 09:01:06
栏目: 智能运维

在 Linux 上部署或管理 GitLab 的权限,通常涉及 系统层权限 和 GitLab 应用层权限 两部分。下面按常见场景给你一个清晰说明。


一、Linux 系统层权限(服务器层面)

1. GitLab 默认用户和目录

GitLab 安装后通常使用:

  • 用户:git
  • 组:git
  • 主要目录:
    • /opt/gitlab(程序)
    • /var/opt/gitlab(数据)
    • /etc/gitlab(配置)

2. 修改目录权限(谨慎)

sudo chown -R git:git /var/opt/gitlab
sudo chmod -R 755 /var/opt/gitlab

⚠️ 不建议手动改 /opt/gitlab,否则可能破坏 GitLab。

3. 防火墙 / 端口权限

sudo ufw allow 80
sudo ufw allow 443

或 CentOS:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

二、GitLab 应用层权限(用户 / 项目 / 组)

1. 用户角色(Global)

角色 权限
Guest 只读
Reporter 查看代码
Developer 提交代码
Maintainer 管理项目
Owner 完全控制

2. 项目权限设置

进入项目:

Settings → Members

添加用户并选择角色。

3. 组权限(推荐)

Groups → Your Group → Members

组权限会自动继承到组内项目。


三、SSH Key 权限(开发者提交代码)

用户添加 SSH Key

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

可设置:

  • 谁可以 push
  • 谁可以 merge
  • 是否允许 force push

五、管理员权限问题

忘记 root 密码

sudo gitlab-rails console
user = User.where(id: 1).first
user.password = 'newpassword'
user.save!

六、常见权限错误及解决

1. Permission denied (publickey)

✅ 检查:

  • SSH key 是否添加
  • 使用 git@ 而不是 http

2. 403 Forbidden

✅ 用户无项目访问权限

3. You are not allowed to push code

✅ 分支被保护 / 角色不足


如果你能说具体一点,比如:

  • 是 GitLab CE 自建 还是 gitlab.com
  • 是 Linux 文件权限 还是 项目访问权限
  • 报错信息是什么

我可以直接给你对应命令或配置示例。

0 踩