Eu sugeriria examinar as opções fornecidas por git init --shared=
, mas você disse que "usar apenas usuários e grupos não é suficiente". Então eu acho que suas opções são:
- ACLs, conforme sugerido por todos.
- removendo o acesso local e usando a gitosis para controlar o acesso por meio de chaves SSH.