我在Ubuntu 14.04 LTS上设置了一个Git服务器。我需要服务器支持SSH和HTTP协议。
到目前为止,我已按照Git Book中的说明使我的服务器支持SSH协议。
为了支持HTTP协议,我将pushover挂钩到我现有的Web服务器上。但是,由于Web服务器作为不同的用户运行,因此无法写入由“git”用户拥有的主存储库。所以我将我的Web服务器用户添加到“git”组,并做了一个chmod -R g+w /home/git
并使HTTP协议工作。但是,通过这样做,我无意中破坏了对repos的SSH访问,因为OpenSSH不允许用户的主目录是可写组的。
我想到了一些解决这个问题的方法。
- 通过设置自定义
AuthorizedKeysFile
位置或通过设置更改全局SSH配置选项StrictModes no
。我不想做其中任何一件事,因为这些更改会影响我的其他非git SSH用户。 - 从git用户的主目录中删除组写权限,然后编写一个脚本,手动将组写权限添加到新存储库。这可能会起作用,但它似乎不是一个非常优雅的解决方案。
有关如何构建我的文件系统以允许组可写的git存储库同时保持SSH访问的任何建议?
如何将存储库移出主目录?
—
Der Hochstapler 2015年
将repos移出主目录的主要问题是它弄乱了我现有的SSH检查。
—
sffc