- Sim, é possível que os usuários acessem arquivos no diretório inicial de outros usuários.
- Não, não há tratamento especial de diretórios pessoais fora das permissões de arquivo do sistema. " Dar direitos a um grupo " envolve duas partes, concedendo a propriedade do grupo e definindo permissões de grupo. Seu exemplo lida apenas com propriedade.
Você pode definir permissões recursivamente com o comando chmod , mas isso por si só pode não garantir que novos arquivos criados por um membro do grupo sejam acessíveis aos outros.
Obrigado pela conta do que você fez até agora, com detalhes adequados, e por declarar sua meta de compartilhar git repositórios.
Primeiro, vamos ver como realizar o compartilhamento de arquivos de grupo no Unix e no Linux de uma maneira geral e, em seguida, examinar algumas considerações sobre git .
Configuração básica de compartilhamento de arquivos em grupo
Aqui estão alguns princípios básicos deste tipo de compartilhamento de arquivos no Unix e no GNU, etc. Esta é uma maneira simples de configurar um ou mais diretórios onde todos os membros de um grupo tenham permissões de leitura e gravação em arquivos criados por outros usuários. no grupo.
Vamos supor que seu grupo de usuários comum seja gitusers e o diretório seja repo .
-
Coloque os membros de compartilhamento em um grupo comum (por exemplo, gitusers ).
-
Defina umask 002 para todos os usuários do grupo, indicando que a maioria dos arquivos será gravada em grupo por padrão. Isso pode ser definido em vários arquivos de inicialização do shell (como /etc/bash.bashrc ). Nos sistemas GNU / Linux, consulte man 8 pam_umask e man umask para mais e melhores informações.
-
Defina a propriedade do grupo recursivamente ( -R ) em todos os arquivos compartilhados:
chgrp -R gitusers repo
-
Defina permissões de leitura e gravação de grupo recursivamente em todos os arquivos:
chmod -R g+rw repo
-
Defina o set group id on execution bit ( setgid ) do repositório e todos os subdiretórios. O setgid indica que os arquivos e subdiretórios recém-criados nesse diretório herdam a mesma propriedade do grupo que o diretório pai. Novos subdiretórios também têm o setgid bit definido, para um efeito recursivo:
find repo -type d -exec chmod g+s {} \;
Após as etapas acima, você deve estar no caminho certo para todos os usuários do mesmo grupo gitusers no exemplo, para ler e gravar os arquivos uns dos outros, e não permitir permissão de gravação para usuários que não estejam no compartilhamento gitusers grupo. Você pode replicar o comando chown , chmod e find em quantos diretórios desejar, para qualquer finalidade de compartilhamento desejada, não apenas git .
Compartilhando git Repositórios
Parece que git pode funcionar bem apenas com as alterações de configuração acima. No entanto, git também conhece as permissões de compartilhamento e grupo (e pode realmente fazer algumas das opções acima para você).
Se você estiver criando um repositório git compartilhado, considere estas opções:
git init --bare --shared=group repo
Se você tiver um repositório existente, considere estas configurações:
- core.bare
- core.sharedRepository = group
Veja a página git-init man e a página git-config man para mais detalhes.
Notas
Embora um repositório git compartilhado, em grupo, cuide de algumas das mesmas etapas do exemplo geral, recomendo executar as etapas no exemplo geral, bem como garantir consistência e facilidade na configuração quaisquer outros diretórios compartilhados.