Eu tenho um arquivo muito importante que um aplicativo no meu local de trabalho usa, preciso garantir que ele não seja excluído, como posso fazer isso?
Eu tenho um arquivo muito importante que um aplicativo no meu local de trabalho usa, preciso garantir que ele não seja excluído, como posso fazer isso?
Sim, você pode alterar os atributos do arquivo para somente leitura.
O comando é:
E para desativá-lo:
De
man chattr
:Grave-o em um CD. Coloque o CD em uma unidade de CD-ROM e acesse-o de lá.
Exemplo:
Você também deve criar vários links físicos para o arquivo. Eles devem estar em vários locais que os usuários comuns não podem acessar.
Dessa forma, mesmo que eles consigam anular a proteção do seu chattr, os dados permanecerão e você poderá restaurá-los facilmente onde seu aplicativo os estiver procurando.
O Linux tem a chamada opção de montagem de ligação, que é um recurso bastante poderoso e útil para saber :
— o que está sendo feito aqui é vincular o arquivo de montagem a si mesmo (sim, você pode fazer isso no Linux), então ele é remontado no modo R/O. Claro que isso também pode ser feito no diretório.
Outros responderam à sua pergunta como você a fez. Como o @Sven mencionou em um comentário, a solução geral para a pergunta "Como posso garantir que nunca perderei um arquivo?" é criar um backup do arquivo. Faça uma cópia do arquivo e armazene-o em vários lugares. Além disso, se o arquivo for extremamente importante e sua empresa tiver uma política de backup de dados importantes com um serviço de backup, você pode considerar a inclusão desse arquivo no serviço.
No Linux, o sinalizador imutável é suportado apenas em alguns tipos de sistema de arquivos (a maioria dos nativos, como
ext4
,xfs
,btrfs
...)Em sistemas de arquivos em que não há suporte, outra opção é montar o arquivo sobre si mesmo no modo somente leitura. Isso deve ser feito em duas etapas:
Isso deve ser feito a cada inicialização, por exemplo, via
/etc/fstab
.Em um comentário à resposta de Kevin , Jerry menciona:
Vou presumir que você não pode mudar essa prática, pois é uma péssima ideia.
Todas as sugestões sobre o uso de um dispositivo somente leitura têm o mesmo problema - torna um PITA para você fazer alterações legítimas quando necessário. No caso de uma unidade bloqueável, como um cartão SD, você se depara com o problema de ficar subitamente vulnerável ao desbloqueá-la para fazer suas alterações.
Em vez disso, o que eu recomendaria é configurar outra máquina como um servidor NFS e compartilhar o diretório com os arquivos importantes para a(s) máquina(s) em que os usuários têm root. Compartilhe a montagem como somente leitura, para que as máquinas com usuários em quem você não confia não possam fazer modificações. Quando você precisar fazer alterações legítimas, poderá se conectar ao servidor NFS e fazer nossas alterações lá.
Usamos isso para nossos servidores da Web, para que uma exploração bem-sucedida contra o servidor da Web não seja capaz de inserir ou alterar nenhum arquivo que o servidor serviria de volta ou alterar a configuração.
Observe que isso ainda pode ser ignorado da mesma forma que todos os relacionados ao ponto de montagem podem ser:
Por que não criar uma imagem ISO 9660, que é somente leitura por design?
Monte a imagem ISO e ela se parecerá com um CD-ROM, mas com o desempenho de um disco rígido, e os arquivos na imagem montada estarão tão protegidos contra exclusão quanto os arquivos em um CD-ROM físico.
A ideia de gravar o arquivo confidencial em um CD e executá-lo a partir de um CD-ROM é interessante, supondo que definir o bit imutável no arquivo não seja considerado suficiente.
Existem possíveis problemas negativos ao executá-lo a partir de um CD físico, incluindo desempenho (as unidades de CD-ROM são muito, muito mais lentas que os discos rígidos ou SSDs). Existe a probabilidade de o CD-ROM ser removido por um indivíduo bem-intencionado e substituído por um disco diferente ao qual ele precisa acessar. Existe a probabilidade de uma parte maliciosa simplesmente pegar o disco e jogá-lo no micro-ondas (ou na lixeira), "excluindo" seu arquivo. Existe a inconveniência de ter que ter uma unidade de CD-ROM de hardware dedicada apenas para aquele arquivo e outros fatores.
Mas o OP deixou claro que a intenção principal é proteger contra exclusão acidental, não contra atos maliciosos, e que o (s) arquivo (s) em questão é feito backup e recuperável caso ocorra um acidente, mas é altamente desejável que o arquivo nunca ser excluído acidentalmente.
Parece que executar o arquivo a partir de uma imagem ISO montada satisfaria o requisito.