我正在服务器上安装 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 登录的有效用户的位置取决于您的发行版、桌面环境和显示管理器。