Tente:
chattr +i filename
Fazendo isso, o arquivo poderá ser recuperado até mesmo pelo usuário root
- use com cuidado.
Sem usar o sudo, de preferência?
Tente:
chattr +i filename
Fazendo isso, o arquivo poderá ser recuperado até mesmo pelo usuário root
- use com cuidado.
Não, isso não é possível. Impossível para usuários normais excluir um arquivo: claro.
Você precisará de sudo
para impedir que os usuários excluam arquivos. Seu administrador sempre poderá excluir um arquivo.
sudo chattr +i test
pode impedir a exclusão, mas exige sudo
. Um simples sudo chattr -i test
torna possível remover o arquivo. Nenhum outro usuário além de administrador pode usar chattr
.
E ... simplesmente reinicializar e entrar no modo de recuperação permitirá que essa pessoa possa excluir esse arquivo. Seria um risco de segurança se houvesse um método para nunca excluir um arquivo.
É um pouco grosseiro, mas isso está próximo - se você remover o acesso de gravação no diretório, os arquivos dentro dele não poderão ser excluídos. E não requer sudo
se você é o proprietário:
=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme
=^_^= izkata@izein:~$ cat test/delme
Hello
=^_^= izkata@izein:~$ rm test/delme
rm: cannot remove 'test/delme': Permission denied
Assim, você pode definir permissões no próprio arquivo da maneira que quiser.
Além disso, como afirma o @Rinzwind, certamente há muitas maneiras de contornar isso.
Para excluir um arquivo, você precisa de permissão de gravação para todos os diretórios aos quais o arquivo está vinculado. Para desvinculá-lo de um diretório, você precisa de permissão de escrita para esse diretório.
Portanto, contanto que você dê permissão de escrita (ou mesmo propriedade) ao arquivo , mas não ao diretório ou diretórios ao qual o arquivo está vinculado, esse arquivo não poderá ser excluído.
A melhor maneira de conseguir isso seria vincular esse arquivo a um diretório que seja de propriedade de root e que não seja gravável por ninguém. Você poderia torná-lo possuído por você, o que significaria que você e o root poderiam excluí-lo.
Isso ainda permitiria que outros usuários vinculassem esse arquivo a outros diretórios e o desvinculassem dali em diante, mas eles ainda não conseguiriam excluir o arquivo, já que eles poderiam desvinculá-lo do seu próprio diretório.
Observe que, para que isso funcione totalmente, a permissão de gravação de cada componente do caminho para o arquivo teria que ser controlada. Porque, por exemplo, se o arquivo for /a/b/the-file
e você tiver /a/b
não gravável por ninguém, mas todos tiverem acesso de gravação a /a
, eles poderão renomear /a/b
para outra coisa e recriar seus próprios /a/b
e criar seus possui /a/b/the-file
ai.
Tags filesystem permissions