Auto definir permissão de gravação para um grupo

0

Eu quero criar um diretório no qual vários usuários possam contribuir com os mesmos arquivos e eu quero que cada arquivo criado por qualquer usuário tenha permissão de gravação por padrão para todos no grupo.

Eu fiz o setgid para um diretório e todos os novos arquivos têm o grupo certo. No entanto, novos arquivos ainda são criados sem permissões de gravação no grupo.

Aqui está uma ilustração do que estou tentando fazer:

(como usuário root):

mkdir --mode=u+rwx,g+rws,o-rwx /tmp/mydir
chown root.mygroup /tmp/mydir
touch /tmp/mydir/test.txt

Então, quando eu faço ls -la /tmp/mydir/ , estou chegando

drwxrws---  2 root    mygroup    4096 Sep 12 12:04 .
drwxrwxrwt 11 root    root       4096 Sep 12 12:04 ..
-rw-r--r--  1 root    mygroup    0    Sep 12 12:03 test.txt

Assim, a permissão de gravação nunca é preenchida para um grupo para todos os novos arquivos criados por membros desse grupo. Eu entendo que outros usuários do grupo ainda podem sobrescrever isso fazendo chmod g+w para arquivos específicos como test.txt no exemplo acima e este é o comportamento correto na maioria dos casos, mas existe uma maneira de alterar recursivamente isso para um diretório específico e permitir que as permissões de gravação sejam automaticamente definidas para um grupo, assim como o proprietário de todos os novos arquivos dentro desse diretório?

    
por Alex 12.09.2017 / 21:13

1 resposta

1

As permissões padrão para novos arquivos e pastas são determinadas por umask . Se você configurar o umask padrão para os usuários como 002 , a permissão do grupo será definida como rw para novos arquivos e pastas. A configuração de umask para todos os usuários pode ser feita usando pam_umask .

Para usar pam_umask , nas distribuições baseadas em Debian, você deve configurar o módulo em /etc/pam.d/common-session anexando o seguinte ao final do arquivo:

 session optional   pam_umask.so

Em seguida, configure o valor do umask desejado em /etc/login.defs .

Observe que a máscara configurada usando o PAM não é aplicada a todos os aplicativos do Gnome (para obter detalhes, consulte Como definir umask para toda a sessão do gnome ). No entanto, as sessões iniciadas a partir de ssh ou tty não são afetadas.

Se você não quiser alterar a umask padrão no seu sistema, você pode usar Listas de controle de acesso POSIX . Quando a ACL é definida para um diretório, os novos arquivos herdam a ACL padrão . As ACLs podem ser definidas e modificadas usando setfacl e getfacl , respectivamente. Alguns sistemas de arquivos podem precisar de sinalizadores de montagem adicionais para ativar as ACLs.

    
por 12.09.2017 / 21:40