如何使GitLab使用不同于git的用户?

3
我正在尝试让gitlab使用不同的用户运行,但我找不到任何地方配置它。
我这样做是因为我需要使用NIS帐户来运行它,实际上,我甚至删除了本地git用户,在NIS上创建了一个用户,并尝试像这样重新启动它(在修复UID和GID更改后进行所有权更改)。
STDERR: usermod: user 'git' does not exist in /etc/passwd
---- End output of ["usermod", "-g", "10032", "-s", "/bin/sh", "git"] ----
Ran ["usermod", "-g", "10032", "-s", "/bin/sh", "git"] returned 6

完整日志: https://gist.github.com/ssbarnea/83b9c07678187dfe238f git用户不在passwd文件中是很正常的,因为它是NIS用户。此外,我无法找到gitlab获取用户组10032值的位置,为什么要尝试重新配置它或如何自定义或绕过它。
2个回答

2
您需要首先创建/拥有一个不同的用户,并替换安装文档中所有实例: - 将 "sudo -u git" 替换为 "sudo -u yourNewUser"。 - 将 "git" 用户替换为正确的用户,例如将 "/home/git/" 替换为 "/home/yourNewUser/"。 请注意配置文件 "config/gitlab.yml" 的设置。
# Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
# user: git

我使用已安装的方式安装了GitLab,这意味着/etc/gitlab目录下的配置文件不是gitlab.yml文件,而是一些gitlab.rb文件,似乎是用不同的语法来覆盖gitlab.yml中的内容。我不再需要更改用户名,只需更改组,希望我不会再遇到上述错误。...我不想在升级时丢失配置。谢谢! - sorin
@sorin 好的。我会修改其中一个gitlab.yml文件,将明显的“false”值放入其中,以触发错误(并查看实际使用的是哪个)。 - VonC
如果您正在使用GitLab Omni包,请查看我的答案。 - Halsafar

2
这是一个关于该问题的错误报告,最近有一些相关活动:https://gitlab.com/gitlab-org/omnibus-gitlab/issues/737 对我来说,解决方案是在/etc/gitlab/gitlab.rb中设置以下内容:
user['username'] = "git"
user['group'] = "git"
user['uid'] = 1040
user['gid'] = 1034
# # The shell for the git user
user['shell'] = "/bin/bash"
# # The home directory for the git user
user['home'] = "/var/home/git"

调整每个值以匹配您现有的 NIS git 用户。

然后运行 gitlab-ctl reconfigure 命令。

需要再次强调一下该错误报告中的一些注释。基本上,设置上述值将导致 GitLab 决定不需要创建任何用户。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接