chattr: la massima protezione di file / cartelle in Linux tramite attributi o flag

Beh ... non tutto può essere un gioco, non è mia intenzione pubblicare solo post che parlano di giochi 😉 ... non sono un utente che gioca molto, a casa lo lascio alla mia ragazza (che ora è agganciato Sims 4), ecco perché mi motiva maggiormente a pubblicare articoli più tecnici, su comandi o suggerimenti nel terminale.

In Linux ne abbiamo alcuni permessi che risolverà sicuramente quasi tutti i problemi, possiamo determinare quale utente o gruppo di utenti ha accesso a una determinata risorsa, cartella, servizio. Tuttavia, ci sono momenti in cui i permessi non sono esattamente ciò di cui abbiamo bisogno, poiché ci sono situazioni in cui vogliamo che nemmeno root possa eseguire una determinata azione.

Supponiamo di avere una cartella o un file che non vogliamo eliminare, andiamo ... né dal nostro utente, né da un altro sul computer (ehm ... la mia ragazza per esempio haha), o nemmeno root può eliminarlo, come ottenere questo risultato? ... i permessi non ci aiuteranno perché root è il fottuto master, può eliminare qualsiasi cosa, quindi è qui che entrano in gioco gli attributi del file o della cartella.

chattr + i

Supponiamo di voler proteggere un file in modo che non possa essere cancellato, è: password.txt , la tua posizione è (ad esempio) $ HOME / passwords.txt

Per impostare un attributo di sola lettura (ovvero, nessuna modifica e nessuna eliminazione) sarebbe:

sudo chattr +i $HOME/passwords.txt

Come puoi vedere, abbiamo bisogno dei permessi di amministrazione per il parametro + i, che a proposito, + i significa che il file sarà immutabile, sai, non può essere cancellato, non può cambiare in alcun senso.

Quindi, puoi provare a cancellare il file, anche usando sudo ... vedrai che non sarai in grado di farlo, ecco uno screenshot:

chattr_1

Per elencare o vedere gli attributi di un file possiamo usare il comando lsattr, ad esempio:

lsattr passwords.txt

Quindi rimuovere la protezione invece di usare +i noi usiamo -i e voilà 😉

chattr + a

Come abbiamo appena visto, il parametro + i ci permette di proteggerlo completamente, ma ci sono state volte in cui ho bisogno di un certo file per poter essere modificato, MA senza alterarne il contenuto originale. Ad esempio, ho una lista e desidero che nuove righe e informazioni vengano aggiunte usando echo, ma senza alterare le precedenti, per questo:

sudo chattr +a $HOME/passwords.txt

Fatto ciò, proviamo a scrivere qualcosa di nuovo nel file:

echo "Prueba" > $HOME/passwords.txt

Noterai che viene visualizzato un errore ... tuttavia, se aggiungiamo contenuto invece di sostituire (utilizzando >> e non>):

echo "Prueba" >> $HOME/passwords.txt

Qui possiamo.

La fine!

Conosco qualcuno ben informato quando vede che anche con root non è possibile cancellare / modificare un file potrebbe controllarne gli attributi ... ma, ehi! … Quante volte che noti qualcosa del genere ti fermi a pensare agli attributi? ... Dico questo perché generalmente pensiamo semplicemente che l'HDD o il suo settore sia corrotto, o che il sistema sia semplicemente impazzito 😀

Non c'è molto altro da aggiungere ... Penso che lo userò da +i per interrompere il download di qualcosa che la mia ragazza sta scaricando ... ... ehm ... non voleva scarica sims 4 gratuito? ... Penso che ti insegnerò una o due cose sulle licenze e che non dovrebbero essere violate 😀

Saluti!


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   cessare suddetto

    Interessante sapere di questo strumento, se mi provoca qualche curiosità, in un certo senso non sarebbe qualcosa di simile ai permessi dei bit? Cioè setuid, setgid e sticky bit? In caso contrario, perché? Oo

    PS: ho perso il conto delle volte che dici la mia ragazza in questo articolo hahaha

    1.    Hugo suddetto

      Anche questo è un bit, il bit di immutabilità, ed è progettato in modo che nessuno possa modificare o eliminare il file a cui si applica (nemmeno root). Lo uso ad esempio per proteggere da scrittura i file di configurazione, cosa particolarmente utile in distribuzioni come Zentyal (è un modo molto più veloce per personalizzare la configurazione rispetto alla modifica o alla creazione di modelli).

      Combinando questo comando con chown, chmod e setfacl, è possibile realizzare cose interessanti.

      FreeBSD ha qualcosa di simile, che uso anche per il mio pfSense.

    2.    Giovanni suddetto

      Hahaha è una fase nota.
      http://www.xkcd.
      com / 684 /

  2.   niandekuera suddetto

    [Dr. Bolivar Trask] $ sudo chattr + i * .human

  3.   Tesla suddetto

    Ottimo ordine. Non la conoscevo.

    Può essere molto utile se condividiamo un PC o se abbiamo un determinato documento su cui stiamo lavorando che non vogliamo eliminare per il mondo.

    Grazie e cordiali saluti!

  4.   Luis suddetto

    Molto interessante.

    Potrebbe essere fatto qualcosa di simile in modo che ROOT non possa accedere a una determinata cartella sulla nostra home page?

    1.    Tesla suddetto

      Secondo l'articolo, con questo comando nemmeno root può accedere al file. Suppongo che lo stesso valga per le cartelle, poiché in Linux le cartelle sono anche file, giusto?

  5.   Joaquin suddetto

    Che coincidenza. Questo fine settimana ho provato a eliminare una partizione di root e non sono riuscito a eliminare un file dalla directory / boot. Cercando ho trovato gli attributi, sinceramente non li conoscevo e ora capisco che la questione dei permessi e degli attributi in un file è molto grande. Questo è uno di quei comandi essenziali che dobbiamo conoscere, insieme a "chmod" e "chown".

  6.   aguatemala suddetto

    Questo è estremamente utile, soprattutto se, ad esempio, vogliamo cambiare il DNS di default del nostro rispettivo ISP, ed è allora che dobbiamo modificare il file /etc/resolv.conf e per fare questo dobbiamo fare chattr -i / etc / resolv.conf, modificare gli IP che compaiono per quelli dei nostri DNS gratuiti e / o gratuiti (come quelli di OpenDNS 208.67.222.222 e 208.67.220.220 o quelli di Google 8.8.8.8 e 8.8.4.4) e dopo aver modificato il file redo chattr + i /etc/resolv.conf in modo che il file non venga modificato all'avvio della macchina.
    Ottimo articolo ... e tra l'altro, la tua ragazza è come mia moglie, altrettanto dipendente dai giochi, hahahahaha

  7.   rawBasic suddetto

    Chiaramente "the-fucking-master" è la tua ragazza in questa situazione. xD