Estou tentando configurar um servidor git no meu servidor FreeNAS. O problema que tenho é com a configuração das permissões para diferentes usuários / grupos, assim como eu quero.
Basicamente eu tenho dois grupos diferentes: git-auth-user
que contém todos os usuários que devem ter rwx
acesso ao diretório que contém todos os repositórios (eu deveria limitar x
aos diretórios que eu pensava, mas por enquanto isso é um pequeno detalhe) e git-unauth-user
, que é basicamente apenas o daemon do git que deve distribuir somente o acesso de leitura.
Eu achei que executar setfacl -m "g:git-auth-user:rwx:fd:allow" git/
funcionaria para dar meus git-auth-user
todos os direitos, mas isso não acontece.
A partir da pesquisa, parece que as permissões clássicas ainda limitam as permissões totais que as ACLs podem distribuir. Isso significa que eu tenho que basicamente dar others
full (basicamente chmod 777 dir
)? Mas então eu suponho que todos que não recebem seus direitos limitados através de ACLs teriam então acesso total também, o que obviamente não é o que eu quero.
Existe alguma maneira de definir os direitos de permissão clássicos de other
aos mais permissivos que eu quero distribuir por meio de ACLs ou, caso contrário, há uma ACL que nega completamente o acesso a todos que não recebem especial? direitos de acesso?
Editar:
ls -la
(portanto, chmod 770
para o diretório)
drwxrwx---+ 2 root wheel 2 Jun 22 23:45 git
e
$ getfacl git/
# file: git/
# owner: root
# group: wheel
group:git-auth-user:rwx-----------:fd----:allow
owner@:rwxp--aARWcCos:------:allow
group@:rwxp--a-R-c--s:------:allow
everyone@:------a-R-c--s:------:allow
Agora, quando um usuário do grupo git-auth-user
tenta gerar um novo diretório dentro do diretório git
, obtenho
$ mkdir test.git
mkdir: test.git: Permission denied
Por outro lado, se eu usar chmod -R 777 git
, tudo funciona bem, mas obviamente essa é uma solução muito ruim, pois dou a todos acesso completo ao diretório, enquanto a solução dos meus sonhos não teria acesso para todos, exceto git-auth-user
( ou seja, meu usuário git-ro
também tem acesso de gravação ao diretório, agora posso remover especificamente todos os direitos desse usuário por ACLs, mas isso obviamente não é escalável. Tenho certeza de que deve haver uma solução melhor para isso que eu m com vista).