Listas de controle de acesso
A resposta direta é listas de controle de acesso (ACLs) . Sim, você pode encontrar um contra-exemplo, mas eles são bons o suficiente na prática (diferentemente da mera capacidade de escrita em grupo, que requer que os usuários pensem nisso o tempo todo). O que eles exigem é que o administrador do sistema (root) defina os grupos, se você quiser que os arquivos sejam compartilhados apenas por um grupo nomeado (root pode optar por delegar, por exemplo, aceitando grupos do LDAP, mas isso é outra história). / p>
Você precisa que os usuários participantes tenham um umask de 022. Se eles criarem arquivos não legíveis no mundo rotineiramente, esse esquema não funcionará. Mas se eles têm umask restritiva, é presumivelmente porque eles não querem compartilhar arquivos de qualquer maneira.
Ativando ACLs
O Ubuntu não habilita as ACLs por padrão, portanto, há um requisito administrativo de uso único. Edite /etc/fstab
usando seu editor favorito e altere todas as linhas correspondentes a um sistema de arquivos no qual você deseja compartilhar arquivos: adicione acl
às opções. (Certifique-se de não alterar nenhuma outra linha e de não usar um editor que contenha linhas longas.) Aqui está uma linha de exemplo com a opção acl
adicionada:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Para que a opção seja efetivada na primeira vez, use um comando como o seguinte (para cada sistema de arquivos):
sudo mount -o remount,acl /
Instale as ferramentas de ACL do pacote acl
.
Configurando o diretório compartilhado
Para ter arquivos compartilhados pelo grupo mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Se as pessoas criarem arquivos e copiá-los para o diretório compartilhado, os arquivos serão legíveis (por causa do umask) e qualquer pessoa no grupo poderá adicionar e remover arquivos (porque o grupo é gravável em grupo). As pessoas não podem editar os arquivos uns dos outros, mas isso é bom ou você enfrentaria conflitos de edição imediatamente.
Se você não tiver um grupo unix, poderá adicionar usuários um por um:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Controle de versão
Se você deseja que as pessoas possam editar arquivos no lugar, também precisa de algo para evitar conflitos de edição. Isso é controle de versão.
Você não precisa de nada disso para compartilhar um repositório git. Você sabe que existem soluções como a gitosis, então use-as.