如何使用gitlab和LDAP身份验证设置管理员用户?

Dan*_*ral 16 authentication ldap gitlab

我刚刚设置了gitlab,但我对管理员用户完全失去了兴趣.维基似乎对这个话题保持沉默,谷歌也没有帮助.

那么,如何在LDAP身份验证中使用gitlab设置管理员用户?

mor*_*nts 22

您还可以通过在rails控制台中执行以下操作来为用户设置管理员权限:

User.find_by_email("user@example.org") do |i|
    i.admin = true
    i.save
end
Run Code Online (Sandbox Code Playgroud)

  • 对我不起作用.输入之后,我得到一个User对象的长输出,但它仍然包含`admin:false`. (5认同)

vik*_*027 19

这就是我用LDAP(或Windows AD)用户vikas作为管理员所做的.

首先登录GitLab门户并注销,然后运行以下命令.

gitlab-rails console production
u = User.where(id: 1).first
u.admin = true
u.save!
exit
Run Code Online (Sandbox Code Playgroud)

运行上述命令后,再次登录,现在您将拥有vikas AD用户的管理员权限.

  • 我在Rails版本4.2.6(gitlab-rails --version)中测试了上述命令,它也可以在不退出gitlab的情况下工作.只需刷新浏览器即可显示管理按钮(工具).只需要注意你在命令中传递的id号.在我的情况下它是3 ..... u = User.where(id:3).first (2认同)

Dav*_*ana 11

Mine是已接受答案的变体,但它基于官方文档中的示例

从您的gitlab服务器的命令行:

打开gitlab rails控制台(我假设您没有以root用户身份登录):

sudo gitlab-rails console production
Run Code Online (Sandbox Code Playgroud)

然后键入以下命令:

 user = User.find_by(username: 'my_username')
 user.admin = true
 user.save!
Run Code Online (Sandbox Code Playgroud)

关闭控制台:

exit
Run Code Online (Sandbox Code Playgroud)

更新你的gitlab服务器:

sudo gitlab-ctl reconfigure
Run Code Online (Sandbox Code Playgroud)

  • 这在“user.save!”和浏览器刷新之后立即对我有用(无需“sudo gitlab-ctl reconfigure”或重新登录)。 (2认同)
  • 对于较新版本的 gitlab,请使用“sudo gitlab-rails console -e production”打开控制台 (2认同)

Dan*_*ral 6

该文件db/fixtures/production/001_admin.rb包含用于管理的用户和密码设置,但您必须禁用 LDAP 才能使用它登录。之后,如果您通过 LDAP 登录创建了用户,则可以将其设置为管理员并重新启用 LDAP。

希望有更合理的方法存在......