- 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.