为了管理 Web 服务器上的站点,我为每个站点创建一个新用户。他们会获得一个主目录,其中包含他们的公用文件夹。有时我可能会以站点身份登录,并希望可以使用我的 config/dotfiles。这对于我的单个管理员用户来说工作正常,我可以拉取我的点文件的 git 存储库并在发生更改时进行更新。我将我的点文件存储库添加到,/etc/skel
以便将其添加到每个新用户。这变得越来越麻烦,因为现在我无法执行任何操作,git pull
因为我的公钥不正确或诸如此类的原因。此外,从一个站点到另一个站点更新存储库也很麻烦。有没有什么好办法来处理这个问题?有没有什么地方我可以将其符号链接到,并使用任何帐户获得 git 访问权限和写访问权限?到目前为止,我是唯一一个使用 shell 登录的用户。
答案1
首先,您应该意识到一些点文件需要特殊权限(例如 700 ~/.ssh
),并且在不同的帐户之间共享其中一些点文件可能会有风险,并且不可取。
也就是说,可能的方法取决于您希望在用户目录中拥有什么:点文件的 git 存储库或单独的点文件(没有存储库)。对于第一种情况,您可以使用管理员帐户拉取远程存储库(如果我理解正确的话,您已经这样做了)。完成后,您可以为其他帐户克隆/拉取存储库。如果无法从远程服务器拉取存储库(这似乎是您的问题),您可以只使用服务器本地存储库。那个只需要相关用户的读取权限。
如果您只想让所有用户拥有点文件(没有存储库),您可以从服务器本地存储库签出到不同的工作树,例如GIT_WORK_TREE=/path/to/home/dir git checkout -f
或使用rsync
以保持文件同步。请注意,您已获得所有这些的权限和所有权。
无论您选择哪种方法,都可以使用适当的脚本作为 git hook 手动或自动完成。