将 gitolite3 用户替换为 git

将 gitolite3 用户替换为 git

我正在服务器上安装 gitolite3,使用 ssh 和 http 拉/推/alltherest。在此过程中,创建了用户和组 gitolite3。

当我跑步时:

$ ssh gitolite3@server info

我收到了包含 RW repo 信息的正确 gitolite3 消息。

问题是,我想要普通的用户 git,而不是繁琐的 gitolite3,而又不想把它全部拆开。其他一些线程提到创建具有相同 uid 和 gid 的用户 git,但这不会产生与上述相同的结果。

当我登录时(使用传统的图形登录屏幕),有我通常的管理员用户,以及 gitolite3 用户名(但我不确定这是我创建的 gitolite3 还是 git 用户别名)。

如何创建 git 用户/替换 gitolite3 用户,以便 ssh git@server info 与 gitolite3 配合使用?什么决定了用户何时可以使用登录屏幕登录,以及如何关闭它?

答案1

如果这是一个新环境,我会像平常一样创建新的 git 用户,然后为该用户运行 gitolite 设置(忘记 gitolite3 用户)。

如果您确实想保留当前的 ​​gitolite 配置/存储库/等,您可能只需在完成后将所有相关文件复制到该用户(并确保所有权信息已更新)并且它可能会起作用(检查 gitolite 文档以将存储库移动到新机器,以防它列出有关此过程的任何额外陷阱)。

答案2

如果您还没有 git 用户,并且想要重命名默认的 gitolite3 用户,这可能相当容易。尝试以特权用户身份运行以下命令。

usermod -l git gitolite3

这应该将 gitolite3 用户重命名为 git。这应该允许 ssh 命令按您希望的方式工作。

ssh git@hostname info

答案3

另一个答案提到要创建具有相同 UID 和 GID 的另一个用户,这是正确的,但是它没有提供命令。如下所示:

useradd --home-dir /var/lib/gitolite3 --gid gitolite3 --no-create-home --shell /bin/bash --uid $(id -u gitolite3) --no-user-group --non-unique git

这将为您带来使用发行版包管理器的好处,并且还可以使用“git”作为 SSH 用户,而没有任何不利之处。

答案4

您的问题是您不想输入名称,而不是名称本身。那么不要:

ssg () {

    ssh gitolite3@server $@
}

或者

alias ssg="ssh gitolite3@server $@"

放入你的.bashrc,再次 source 它,之后你就可以只说ssg info。当然,你可以使用任何你想要的,并且不会与你需要的命令冲突ssg

这样做有两个原因:首先,它比更短ssh git@server info;其次,我不喜欢更改这些默认名称,因为你不能确定系统中不存在对该名称的任何硬编码依赖关系,除非有文档记录说明不存在或者如何更改默认值。

配置 GUI 登录的有效用户的位置取决于您的发行版、桌面环境和显示管理器。

相关内容