Como definir permissões para que os arquivos não possam ser excluídos?

4

Existe uma maneira de configurar um diretório como arquivos e diretórios

  • pode ser lido
  • escrito para
  • criado

mas NÃO excluído. Isto é para o meu arquivo de fotos. Quero evitar excluir acidentalmente fotos. Existe uma maneira de fazer isso?

PS / Eu configurei o arquivo usando bindfs se isso for de alguma ajuda. Dois usuários e um grupo têm acesso ao 0750.

    
por don.joey 25.01.2017 / 14:20

1 resposta

2

Você pode definir o atributo somente de anexação. De man chattr :

A  file  with the 'a' attribute set can only be open in append mode for
writing.   Only   the   superuser   or   a   process   possessing   the
CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

Para diretórios, isso significa que novas entradas podem ser criadas, mas nenhuma entrada pode ser renomeada ou excluída:

$ mkdir foo
$ sudo chattr +a foo
$ touch foo/bar
$ echo a > foo/bar
$ rm foo/bar
rm: cannot remove 'foo/bar': Operation not permitted
$ mv foo/bar foo/baz
mv: cannot move 'foo/bar' to 'foo/baz': Operation not permitted

Esse atributo não herda, portanto você terá que aplicar isso a todos os subdiretórios recursivamente:

sudo find . -type d -exec chattr +a {} +
    
por muru 25.01.2017 / 14:29