在Ubuntu中pipe理多个站点的多个用户

为了pipe理我的networking服务器上的网站,我为每个网站创build一个新的用户。 他们得到一个他们的公用文件夹所在的主目录。 有时我可能会login作为一个网站,并希望有我的configuration/点文件可用。 这与我的单一pipe理员用户正常工作,我能够拉动我的git仓库文件回购和更新时,有变化。 我将我的dotfiles回购添加到/etc/skel以便将其添加到每个新用户。 这是一个痛苦,因为现在我不能做一个git pull因为我的公钥是不正确的或什么的。 此外,从一个站点到另一个站点并更新回购将是一个痛苦。 有没有一个好办法来处理这个问题? 有什么地方我可以只是符号链接,并有任何帐户的git访问和写入访问? 我是迄今为止唯一一个用shelllogin的用户。

首先,你应该知道一些点文件需要特殊的权限(比如~/.ssh为700),这样做有潜在的风险,不希望在不同账户之间共享一些文件。

也就是说,一个可能的方法取决于你想在你的用户目录中拥有什么:dotfiles的git仓库或者单独的dotfiles(没有仓库)。 对于第一种情况,您可以使用您的pipe理员帐户(如果我理解正确的话,您已经这样做)提取远程存储库。 一旦完成,您可以克隆/拉动其他帐户的存储库。 如果无法从远程服务器上获取回购(这似乎是您的问题),则可以使用服务器本地存储库。 那一个将只需要读取有关用户的权限。

如果你只是想为所有的用户(没有回购)的点文件,你可以从你的服务器本地存储库签出一个不同的工作树,如GIT_WORK_TREE=/path/to/home/dir git checkout -f或使用rsync保持文件同步。 请注意,您将获得所有权限和所有权。

无论您select什么方法,都可以手动或使用适当的脚本作为git钩子自动完成。