Posso proibir a criação de arquivos com determinadas permissões?

3

Eu tenho um diretório com um determinado ID de grupo e desejo apenas que arquivos com o mesmo ID estejam nesse diretório.

Portanto, defino o bit SGID nesse diretório, para que toda vez que um arquivo for criado dentro dele, ele receba o ID correto. Comandos como cp ou touch estão bem agora. O problema é que, se alguém usa mv para mover um arquivo dentro do diretório, seu ID de grupo não é definido como o do diretório.

Eu não quero que isso aconteça.

    
por bug 02.07.2013 / 12:35

3 respostas

0

Não estou ciente de nenhuma maneira de fazer isso usando apenas permissões de leitura / gravação / execução comuns em arquivos / diretórios. No entanto, você pode usar listas de controle de acesso (acls) - consulte man acl para obter informações sobre como elas funcionam - e o < Um comando href="http://linuxcommand.org/man_pages/setfacl1.html"> setfacl em particular para definir permissões.

Por exemplo:

$ setfacl -Rm u:foo:rwX,d:u:foo:rwX test

para modificar a ACL atual e o padrão. Acredito que "d:" afeta apenas a (d) efault ACL dos diretórios e deixa os arquivos intactos. Então, se você criar um novo arquivo no diretório, ele herdará a ACL de seu diretório pai por padrão.

Referências

por 02.07.2013 / 13:26
0

Apenas uma ideia, como o FTP se comporta nesse caso? Deve ser impossível apenas move um arquivo com FTP, eles são sempre copied . FTP poderia ser a solução?

    
por 03.07.2013 / 13:01
0
chown root $MYDIR
chmod ug+rw,o=- $MYDIR

Agora você precisa assistir $ MYDIR - se um arquivo estiver sendo alterado, você deve observar:

Você pode colocar isso em um loop:

sleep 60
touch --reference $MYDIR /dev/shm/lastcheck_mydir
find $MYDIR -type f -anewer /dev/shm/lastcheck_mydir 

Agora, se find encontrou novos arquivos, você pode agir de acordo com isso - como

find $MYDIR -type f -anewer /dev/shm/lastcheck_mydir -exec chgrp $MYGID {} \;
    
por 02.07.2013 / 17:15

Tags