允许多个用户通过ssh和git进行部署

时间:2012-11-19 20:34:43

标签: git github ssh

我们已经启动并运行了一个名为sasse的网站。我们使用简单的SSH和Git(Github)部署策略,其中代码只是pull:从Github帐户到部署服务器(并刷新)。

目前,该网站的文件归服务器上的sasse用户所有,但具有组写权限。这些文件位于/home/sasse/sasse

drwxrwxr-x 10 sasse sasse  4096 Nov 16 07:58 .
drwxr-xr-x  5 sasse sasse  4096 Nov 19 15:13 ..
-rw-rw-r--  1 sasse sasse 45948 Nov 10 05:42 CHANGELOG.txt
-rw-rw-r--  1 sasse sasse   925 Nov 10 05:42 COPYRIGHT.txt
...

这意味着当您在服务器上以git pull身份登录时,它可以正常运行sasse,但如果我将其作为我的个人帐户(已添加到该帐户的sudo帐户) sasse组),任何已更改的文件都属于我;我的主要群组不是sasse。即拉出影响COPYRIGHT.txt的更改后:

drwxrwxr-x 10 sasse sasse    4096 Nov 16 07:58 .
drwxr-xr-x  5 sasse sasse    4096 Nov 19 15:13 ..
-rw-rw-r--  1 sasse sasse   45948 Nov 10 05:42 CHANGELOG.txt
-rw-rw-r--  1 victor victor   925 Nov 10 05:42 COPYRIGHT.txt

这意味着如果我想保留原始所有权状态,我必须记住要chown -R sasse:sasse . - 如果其他人下次可以提取,这是必要的。他们很有可能!

必须有多个人可以将代码部署到我们的服务器,因此sasse帐户是非个人的。我不希望别人登录,而是使用具有相关组成员资格/权限的个人帐户。

问题:

  • 处理多人需要访问以在同一服务器上部署代码的情况的最佳方法是什么?
    • 我们是否应该只允许每个人使用sasse帐户进行部署?*
    • 我们应该维护一个策略,在这个策略中,用户可以对存储库进行组访问(或sudo访问),但不知何故可以解决权限问题搞乱的问题?如果是这样,怎么样?我可以“作为特定用户”进行git pull吗?

*可能会向authorized_keys添加公钥,而不允许sasse自己编辑该文件

1 个答案:

答案 0 :(得分:1)

使用gitolite和适当的接收后(或类似)挂钩。其中一个应该是刚刚推出的参考结账。