Come creare un file anche l'utente root non può cancellarlo


13

Come creare un file anche se l'utente root non può cancellarlo?


9
Mentre la risposta di tante dovrebbe coprire la tua domanda, un meta-commento ad essa: sarebbe molto più facile rispondere se aggiungessi la tua logica alla tua domanda. Forse c'è qualche soluzione al tuo problema che non consiste nel prevenire la cancellazione dei file?
fschmitt,

Risposte:


33

Risposta semplice: non puoi, root può fare tutto.

Puoi impostare l'attributo "i" con chattr (almeno se sei su ext {2,3,4}) che rende immutabile un file ma root può semplicemente annullare l'attributo ed eliminare comunque il file.

Più complessa (e brutta soluzione alternativa): metti la directory che desideri immutabile per root sul server remoto e montala tramite NFS o SMB. Se il server non offre autorizzazioni di scrittura che bloccano l'account root locale. Ovviamente l'account root locale potrebbe semplicemente copiare i file localmente, smontare le cose remote, mettere in atto la copia e cambiarla.

Non è possibile bloccare root dall'eliminazione dei file. Se non puoi fidarti del tuo root per mantenere intatti i file, stai riscontrando un problema sociale, non tecnico.


Questa domanda mi viene posta da un intervistatore. Non conosco la risposta. Gli ho chiesto una risposta. Lo ha detto possibile e trovare la soluzione da solo.
Kumar,

12
un giorno anche tu sarai un intervistatore e sarai in grado di porre domande senza senso da solo: "può root creare un file così grande da non mvpoterlo fare?" (che è uno scherzo pessimo basato sulla teosofia cristiana e uno scherzo terribile se non hai familiarità con il campo)
msw,

5
@msw: si potrebbe obiettare che è uno scherzo terribile anche se hai familiarità con il campo.
Matthew Crumley,

@matthew crumley: colpevole come accusato :)
msw,

@msw: ho appena notato che hai anche ammesso che era uno scherzo zoppo. E FWIW, mi piacciono le (alcune) barzellette, quindi in realtà mi è piaciuto. Questo però sta diventando abbastanza lontano dall'argomento :)
Matthew Crumley,

34

Mettilo su un CD-rom! ;)

(questo dovrebbe essere un commento ma non posso fare commenti ...)


C'è un senso dietro il limite di reputazione per i commenti ;-) Solo un piccolo impulso stimolante. nessuna fiamma voluta ;-)
echox

6
+1 Ma funzionerebbe.
Richard Holloway,

1
Questa e la risposta di @mouviciel è l'unica soluzione corretta. Anche l'onnipotente @root è ancora vincolato dalle regole stabilite dall'hardware.
Lie Ryan,

15

Metti il ​​tuo file su un filesystem di sola lettura. Potrebbe trattarsi di un FS remoto in cui root non è più root, un CD-ROM o un dispositivo rimovibile che può essere protetto da scrittura, ad esempio una scheda SD.


2

Molto tempo fa ho scritto una patch del kernel (a 2.2.ancient) in cui il tentativo di eliminare un file chiamato SELFDESTRUCT ha interrotto il processo di chiamata. Questo ha protetto da "rm -rf *" accidentale.


molto tempo fa e lontano. Come lo hai effettivamente fatto (comandi)?
Michael Durrant,

1

È possibile utilizzare chattr +iper rendere immutabile un file.

Naturalmente un utente esperto con accesso root potrebbe ancora utilizzare chattr -iper rimuovere l'attributo immutabile e quindi eliminare il file, ma potrebbe annullare qualsiasi altro tentativo di bloccare l'accesso elencato anche qui.

Direi che chattr è il modo Unix corretto per farlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.