Como um arquivo movido para um diretório com o conjunto GID-bit herda a propriedade do grupo

2

Problema

Eu sei que um arquivo que é criado em um diretório com o conjunto GID-bit herdará a propriedade do grupo do diretório. No entanto, isso não funciona para arquivos que são movidos para esse diretório, conforme declarado no link

Acontece que os usuários movem arquivos para uma pasta compartilhada em vez de copiá-los ou criar novos arquivos, agora existem arquivos na pasta compartilhada que não são acessíveis a todos.

Exemplo:

Existe uma pasta shread

john:/home/common$ ls -l
drwxrws--- 15 john users 4096 Feb 11 09:14 shared

e um arquivo em uma pasta privada.

john:/home/john$ ls -l
-rw-rw---- 1 john john 512 Feb 11 09:14 test.txt

Esse arquivo é movido para a pasta compartilhada. Ele mantém a propriedade do grupo.

john:/home/common/shared$ mv /home/john/test.txt .
john:/home/common/shared$ ls -l
-rw-rw---- 1 john john 512 Feb 11 09:14 test.txt

Quando o arquivo é movido para shared , o grupo permanece john e não é alterado para users . Se o arquivo for copiado , o grupo será alterado para users .

Minha pergunta

Embora esse comportamento seja lógico do ponto de vista do sistema, não é o que se espera do ponto de vista do usuário.

Existe uma maneira de configurar o diretório shared para que o grupo também seja alterado automaticamente para arquivos que são movidos? Qual é a melhor prática para atingir esse objetivo?

    
por Jdz 11.02.2017 / 10:44

1 resposta

2

O setgid afeta os arquivos recém-criados (usando touch , cp ) e não afeta os arquivos já criados (usando mv ).

Existem várias soluções, como as postadas aqui . Além disso, você pode adicionar um cron job a periodicamente chgrp de todos os arquivos / pastas em sua pasta compartilhada.

Outra solução possível é usar incrontab -e para corrigir a propriedade do grupo quando um arquivo é movido para sua pasta compartilhada. Tenha cuidado, isso aciona eventos apenas para a pasta compartilhada e não para qualquer outra subpasta.

/path/to/shared/dir IN_MOVED_TO /bin/chgrp users $@/$#
    
por 11.02.2017 / 11:45