5 chattr Kommandoen fir Wichteg Dateien IMMUTABEL (Onverännerbar) am Linux ze maachen


chattr (Change Attribute) ass e Kommandozeil Linux Utility dat benotzt gëtt fir bestëmmten Attributer op eng Datei am Linux System ze setzen/unzesetzen fir zoufälleg Läschen oder Ännerunge vu wichtege Dateien an Ordner ze sécheren, och wann Dir ageloggt sidd an als root Benotzer.

An Linux gebierteg Dateiesystemer dh ext2, ext3, ext4, btrfs, etc. ënnerstëtzt all Fändelen, obwuel all Fändelen net all net gebierteg FS ënnerstëtzen. Eent kann net Fichier/Dossier läschen oder änneren eemol Attributer mat chattr Kommando gesat ginn, obwuel een huet voll Permissiounen op et.

Dëst ass ganz nëtzlech fir Attributer a Systemdateien wéi passwd a Shadow Dateien ze setzen an deenen d'Info vum Benotzer enthält.

# chattr [operator] [flags] [filename]

Folgend sinn d'Lëscht vun gemeinsamen Attributer an assoziéierte Fändelen déi mat dem Chattr Kommando gesat/unset kënne ginn.

  1. Wann e Fichier mat 'A' Attributer gesat gëtt, gëtt säin Zäitrekord net aktualiséiert.
  2. Wann e Fichier mat 'S' Attributset geännert gëtt, sinn d'Ännerungen synchron Updates op der Disk.
  3. E Fichier ass mat 'a' Attribut gesat, kann nëmmen am Append-Modus opgemaach ginn fir ze schreiwen.
  4. E Fichier ass mat 'i' Attribut gesat, kann net geännert ginn (onverännerbar). Heescht keen ëmbenennen, keng symbolesch Link Kreatioun, keng Ausféierung, kee schreiwen, nëmmen de Superuser kann den Attribut unsetze.
  5. E Fichier mat dem 'j' Attribut gëtt agestallt, all seng Informatioun gëtt an den ext3 Journal aktualiséiert ier se an de Fichier selwer aktualiséiert ginn.
  6. E Fichier ass mat 't' Attribut gesat, kee Schwanz-Fusioun.
  7. E Fichier mam Attribut 'd' gëtt kee Kandidat méi fir Backupsatellit wann den Dumpprozess leeft.
  8. Wann e Fichier 'u' Attribut huet gëtt geläscht, ginn seng Donnéeën gespäichert. Dëst erlaabt de Benotzer fir seng Ofschafung ze froen.

  1. + : Füügt den Attribut un dat existent Attribut vun de Fichieren derbäi.
  2. : Ewechzehuelen den Attribut op dat existent Attribut vun de Fichieren.
  3. = : Behalen déi existéierend Attributer déi d'Dateien hunn.

Hei wäerte mir e puer vun de Chattr Kommando Beispiller demonstréieren fir Attributer op eng Datei an Ordner ze setzen/unzesetzen.

1. Wéi Dir Attributer op Dateien derbäi kënnt fir aus der Läschung ze sécheren

Fir Demonstratiounszwecker hu mir den Dossier Demo an de Fichier important_file.conf respektiv benotzt. Ier Dir Attributer opstellt, gitt sécher ze verifizéieren datt déi existent Dateien all Attributer hunn, déi mam 'ls -l' Kommando gesat ginn. Hutt Dir d'Resultater gesinn, am Moment sinn keng Attributer agestallt.

 ls -l
total 0
drwxr-xr-x. 2 root root 6 Aug 31 18:02 demo
-rwxrwxrwx. 1 root root 0 Aug 31 17:42 important_file.conf

Fir Attributer ze setzen, benotze mir d'+ Zeeche a fir desetze benotzen d' Zeeche mam Chattr Kommando. Also, loosst eis onverännert Bit op d'Dateien mat +i Fändelen setzen fir ze verhënneren datt iergendeen eng Datei läscht, och e Root Benotzer huet keng Erlaabnis et ze läschen.

 chattr +i demo/
 chattr +i important_file.conf

Bemierkung: Den onverännerbare Bit +i kann nëmme vum Superuser (dh root) Benotzer gesat ginn oder e Benotzer mat sudo Privilegien kann setzen.

Nodeems Dir onverännert Bit agestallt hutt, loosst eis den Attribut mam Kommando 'lsattr' verifizéieren.

 lsattr
----i----------- ./demo
----i----------- ./important_file.conf

Elo, probéiert kräfteg ze läschen, ëmbenennen oder d'Permissiounen z'änneren, awer et ass net erlaabt seet Operatioun net erlaabt.

 rm -rf demo/
rm: cannot remove âdemo/â: Operation not permitted
 mv demo/ demo_alter
mv: cannot move âdemo/â to âdemo_alterâ: Operation not permitted
 chmod 755 important_file.conf
chmod: changing permissions of âimportant_file.confâ: Operation not permitted

2. Wéi unset Attributer op Dateien

Am uewe genannte Beispill hu mir gesinn wéi een Attribut setzt fir Dateien vun enger zoufälleger Läschung ze sécheren an ze verhënneren, hei an dësem Beispill wäerte mir gesinn wéi mir d'Permissiounen zrécksetzen (unset Attribut) an et erlaabt e Fichier z'änneren oder ze änneren mat - ech flag.

 chattr -i demo/ important_file.conf

Nodeems Dir d'Permissiounen zréckgesat huet, kontrolléiert den onverännerbare Status vun de Dateien mam Kommando 'lsattr'.

 lsattr
---------------- ./demo
---------------- ./important_file.conf

Dir gesitt an den uewe genannte Resultater datt den '-i' Fändel geläscht gëtt, dat heescht datt Dir sécher all d'Datei an den Dossier ewechhuele kënnt, déi am Tecmint Dossier wunnen.

 rm -rf *

 ls -l
total 0

3. Wéi Séchert /etc/passwd an /etc/shadow Dateien

Onverännerbar Attributer op Dateien /etc/passwd oder /etc/shadow setzen, mécht se sécher vun enger zoufälleger Entfernung oder Tamper, an et wäert och d'Erstelle vum Benotzerkont ausschalten.

 chattr +i /etc/passwd
 chattr +i /etc/shadow

Elo probéiert en neie System Benotzer ze kreéieren, Dir kritt Fehlermeldung déi seet 'kann net opmaachen /etc/passwd'.

 useradd tecmint
useradd: cannot open /etc/passwd

Op dës Manéier kënnt Dir onverännerbar Permissiounen op Äre wichtege Dateien oder Systemkonfiguratiounsdateien setzen fir d'Läschung ze verhënneren.

4. Date bäidroen ouni existent Daten op enger Datei z'änneren

Ugeholl, Dir wëllt just jidderengem erlaben just Daten op eng Datei z'änneren ouni scho aginnen Donnéeën z'änneren oder z'änneren, Dir kënnt den 'a' Attribut wéi follegt benotzen.

 chattr +a example.txt

 lsattr example.txt
-----a---------- example.txt

Nodeems Dir den Append Modus gesat huet, kann d'Datei opgemaach ginn fir Daten nëmmen am Append Modus ze schreiwen. Dir kënnt d'Append Attribut wéi follegt aussetzen.

 chattr -a example.txt

Probéiert elo schonn existent Inhalt op engem Fichier Beispill.txt ze ersetzen, kritt Dir Fehler mat 'Operatioun net erlaabt'.

 echo "replace contain on file." > example.txt
-bash: example.txt: Operation not permitted

Probéiert elo neien Inhalt op eng existéierend Datei example.txt ze addéieren an z'iwwerpréiwen.

 echo "replace contain on file." >> example.txt
 cat example.txt
Here is the example to test 'a' attribute mean append only.
replace contain on file.

5. Wéi Secure Directories

Fir de ganze Verzeechnes a seng Dateien ze sécheren, benotze mir '-R' (rekursiv) Schalter mat '+i' Fändel zesumme mam ganze Wee vum Dossier.

 chattr -R +i myfolder

Nodeems Dir rekursiv Attributer agestallt hutt, probéiert den Dossier a seng Dateien ze läschen.

 rm -rf myfolder/
rm: cannot remove 'myfolder/': Operation not permitted

Fir d'Erlaabnes z'ënnerbriechen, benotze mir deeselwechten '-R' (rekursiv) Schalter mam '-i' Fändel zesumme mam ganze Wee vum Dossier.

 chattr -R -i myfolder

Dat ass et! Fir méi iwwer chattr Kommando Attributer ze wëssen, Fändelen an Optiounen benotzen d'Man Säiten.