Como faço para parar o usuário root de excluir um arquivo?

8

Gostaria de saber se posso impedir que o usuário root exclua um arquivo. É possível?

Aniruddha
fonte
2
Desligue o computador. Não é possível fazer nada para impedir isso!
Slm
2
Raiz é o que no mundo Windows é chamado de "superadmin". É uma conta que deve ser usada especificamente porque pode fazer o que quiser. Mesmo se você impedir que o root faça algo, não haverá como fazê-lo. As pessoas só devem obter acesso root se não houver nada que possa ser feito com permissões / acls / setuid / capacidades / sudo ou, se isso for feito, é mais tempo do que vale a pena. Se você está preocupado com isso, escreva um script para fazer o que eles precisam como root e dê a eles direitos de sudo para esse script.
Bratchley
Por que você quer fazer isso?
Nils

Respostas:

13

Não, isso não é possível. Você pode definir o atributo imutável com chattr +i, o que tornará pelo menos irritante e não óbvio o que deve ser feito para permitir a gravação no arquivo, mas eles podem simplesmente desmarcá-lo novamente. Além disso, seu sistema de arquivos deve suportar isso e ter a funcionalidade ativada.

O SELinux também pode fazer algumas limitações, mas, novamente, pode ser desativado.

A melhor solução é controlar adequadamente os usuários e programas, limitando seu acesso e não permitindo que eles sejam executados como root, a menos que seja absolutamente necessário.

Chris Down
fonte
1
Mas, é claro, o SELinux e similares podem impedir que o root o desative. :-)
Hauke ​​Laging
O @HaukeLaging Root pode, através de configurações variadas, modificar a memória arbitrária, tornando-se cada vez mais difícil a cada barreira. Jogar gato e rato com root não tem muito sentido (mas sim, seria teoricamente possível impedir que o root o faça).
Chris Baixo
@ChrisDown, o SELinux certamente pode reduzir a raiz para um "usuário normal", com permissão. É parte de toda a idéia, de fato.
vonbrand
1
@vonbrand Embora isso possa ser algo que o SELinux deseja fazer, é difícil fazer na prática. Como eu disse, é teoricamente possível, mas praticamente improvável.
Chris Baixo
@ ChrisDown, muito possível, mas muito pouco unixista, poucos o fazem. Os dedos estão muito acostumados a fazer certas coisas ... além disso, faz sentido apenas para configurações paranóicas terminais.
vonbrand
6

Como outros já disseram, geralmente, a idéia de root é que um usuário pode fazer com que a máquina faça o que ela puder. Portanto, não há um sinalizador fácil que possa impedir que o root exclua intencionalmente um arquivo ( chattr +ipode impedir a exclusão acidental ).

Mas, apesar disso, existem algumas soluções:

  1. Coloque o arquivo em um servidor de arquivos e configure-o para não permitir a exclusão. Isso funciona porque a raiz local não é raiz no servidor de arquivos.
  2. Coloque o arquivo na mídia WORM . Isso funciona porque o hardware não permitirá uma substituição, portanto os dados estão protegidos. (Substituir não é algo que a máquina possa fazer.) As opções baratas são CD-R e DVD-R. Verifique se a unidade não pode substituir (destruir) as seções já gravadas. Também existem cartões SD WORM.
derobert
fonte
0

Não.

Qualquer usuário com privilégios "sudo" ou o usuário root pode ver e excluir tudo.

No entanto, em um sistema ideal, você não precisa se preocupar com isso, porque apenas um usuário tem super privilégios, e ele só usará quando necessário e sempre com responsabilidade.

RSFalcon7
fonte
0

É possível em circunstâncias muito específicas:

Você pode desconectar a unidade USB onde a alteração ocorre ou desconectar o cabo Ethernet entre o computador e o NAS. Mas as chances são de que o arquivo seja corrompido ou deixado inacessível ou ambos.

Além da ação baseada em hardware, você pode restaurar o arquivo de um backup anterior.

mouviciel
fonte