Eu tenho um determinado diretório no qual há um projeto compartilhado por vários usuários. Esses usuários usam o SSH para obter acesso a esse diretório e modificar / criar arquivos.
Este projeto deve ser gravável apenas para um determinado grupo de usuários: vamos chamá-lo de "meu grupo". Durante uma sessão SSH, todos os arquivos / diretórios criados pelo usuário atual devem, por padrão, pertencer ao grupo "mygroup" e ter permissões de gravação de grupo.
Posso resolver o problema de permissões com umask
:
$ cd project
$ umask 002
$ touch test.txt
O arquivo "test.txt" agora pode ser gravado em grupo, mas ainda pertence ao meu grupo padrão ("mislav", igual ao meu nome de usuário) e não ao "mygroup". Posso chgrp
definir recursivamente o grupo desejado, mas eu queria saber se existe uma maneira de definir implicitamente algum grupo, como umask altera as permissões padrão durante uma sessão.
Este diretório específico é um repositório git compartilhado com uma cópia de trabalho e eu quero git checkout
e git reset
operações para definir a máscara correta e grupo para novos arquivos criados na cópia de trabalho. O sistema operacional é o Ubuntu Linux.
Atualização: um colega sugere que eu deva examinar o getfacl / setfacl do POSIX ACL, mas a solução abaixo combinada com umask 002
a sessão atual é boa o suficiente para mim e é muito mais simples.