Eu strongmente sugiro que você olhe como gitosis e gitolite resolvem isso (através do uso de authorized_keys
e sua capacidade de configurar um comando forçado, idealmente aceitando um nome de usuário como parte da linha de comando em vez de alterar o ambiente).