2012-02-19 82 views
1

我有一个应用程序使用一些模板文件和一些开发人员正在生产它们。Git,Gitolite,部署和Linux权限

我发现维护模板的最佳方式是将git安装在gitolite上,并创建一个挂钩以在更新上在正确的文件夹中自动签出模板。

那么,安装程序的一切都运行良好,但我有一个安全问题。

模板由与运行时用户一起运行的小应用程序和运行时组使用。 Gitolite使用另一个用户/组通常git:git来管理存储库。

在挂钩中,我必须签出文件到运行时用户文件夹,显然它不起作用。

我想将git组更改为与运行时相同,但我真的不知道在这个解决方案中是否存在安全问题,或者没有理由担心。

我不是安全专家,但我知道这里是充满:)

感谢的很多,大卫。

回答

0

这听起来对我来说就像你实际上并不想从钩子上运行文件结账一样,你只是想让钩子触发它们。结帐真的想要作为runtime用户运行?

我能想到的几个方法可以做到这一点,他们没有健全的惊人:

  1. 建立为git用户密码的SSH密钥,因此它可以运行ssh [email protected] ~runtime/doUpdates.sh,并表示脚本执行fetchcheckout
  2. 设置限制sudogit用户,因此它可以运行sudo -u runtime ~runtime/doUpdates.sh
  3. 设置有限sudogit用户所以它可以chown runtime:runtime -R其结帐操作的结果。

还有一些更糟的。 :)

+0

感谢您的回复,但最后我将同一组分配给两个用户,并且只给该组的写入权限。 – Davide 2012-02-22 08:34:32