Permissões de arquivos entre grupos no Linux

3

Eu tenho dois usuários: Alice e Bob e dois grupos: gerenciamento e pessoal. Alice tem grupo de gerenciamento primário e grupos secundários, pessoal e Alice. Bob tem o grupo principal Pessoal e grupo secundário Bob.

Agora, ambos precisam de acesso de leitura / gravação ao repositório local do Subversion em / var / svn / new-project /. O problema é que, quando Alice se compromete com o repositório, Bob não pode mais se comprometer com ele, devido ao fato de ele não estar no grupo de Gerenciamento, que é o grupo primário de Alice.

Minha pergunta: como ativar a leitura e a gravação no repositório sem atrapalhar as permissões, mantendo-as em grupos primários separados, sem chmodar o diretório do repositório para o 777 e sem executar um cronjob que fixa as permissões a cada minuto?

    
por vincent.io 01.11.2011 / 17:03

3 respostas

3

Você provavelmente deseja ativar o bit setgid no diretório e definir o grupo do diretório como um grupo comum (neste caso, Pessoal). setuid / setgid em um diretório força os arquivos criados sob ele para receberem o proprietário / grupo do diretório.

    
por 01.11.2011 / 23:15
3

Use ACLs (listas de controle de acesso). A documentação está aqui: link

Exemplo para sua configuração:

setfacl --recursive -m u:Alice:rwx /var/svn/new-project/
setfacl --recursive -m u:Bob:rwx /var/svn/new-project/ 
    
por 01.11.2011 / 17:16
2

Faça a estrutura de pastas do repositório pertencente ao grupo Pessoal.

Permissões no 770 e certifique-se de que ambos os usuários tenham uma máscara 00x.

(Se necessário, envolva o cliente subversion em um script pequeno que defina o umask como 00x antes de usar.)

A menos que seu cliente de subversão faça algo incomum com as permissões de arquivo ao atualizar o repositório, isso deve ser suficiente.

    
por 01.11.2011 / 17:20