5 „chattr“ komandos, skirtos svarbiems failams padaryti IMMUTABLE (nepakeičiamus) sistemoje „Linux“


chattr (Keisti atributą) yra „Linux“ komandinės eilutės įrankis, naudojamas nustatyti/panaikinti tam tikrus failo atributus „Linux“ sistemoje, siekiant apsaugoti atsitiktinį svarbių failų ir aplankų ištrynimą ar modifikavimą, net jei esate prisijungę kaip pagrindinis vartotojas.

„Linux“ savosiose failų sistemose, ty „ext2“, „ext3“, „ext4“, „btrfs“ ir kt., Palaikomos visos žymos, nors visos vėliavos nepalaikys visų nevietinių FS. Negalima ištrinti ar modifikuoti failo/aplanko, kai atributai yra nustatyti naudojant „chattr“ komandą, nors vienas turi visas jo teises.

Tai labai naudinga norint nustatyti atributus sistemos failuose, pvz., „Passwd“ ir „shadow“ failuose, kuriuose yra vartotojo informacija.

# chattr [operator] [flags] [filename]

Toliau pateikiamas bendrų atributų sąrašas ir susietos žymos gali būti nustatomos/panaikinamos naudojant „chattr“ komandą.

  1. Jei prie failo pasiekiamas atributų rinkinys „A“, jo atomo įrašas neatnaujinamas.
  2. Jei failas pakeistas atributų rinkiniu „S“, pakeitimai sinchroniškai atnaujinami diske.
  3. Failas nustatytas su atributu „a“, jį galima atidaryti tik pridedant, kad būtų galima rašyti.
  4. Failas nustatytas su „i“ atributu, jo negalima modifikuoti (nekintamas). Tai nereiškia, kad nereikia pervadinti, nėra simbolinės nuorodos kūrimo, jokios vykdymo, jokios rašomos, tik super vartotojas gali atributą panaikinti.
  5. Nustatomas failas su atributu „j“, visa jo informacija atnaujinama į ext3 žurnalą prieš atnaujinant į patį failą.
  6. Failas nustatytas su atributu „t“, be uodegos sujungimo.
  7. Failas su atributu „d“ nebebus kandidatuojamas į atsarginę kopiją, kai bus vykdomas iškelties procesas.
  8. Ištrynus failo atributą „u“, jo duomenys išsaugomi. Tai leidžia vartotojui paprašyti panaikinti jo ištrynimą.

  1. + : pridedamas atributas prie esamo failų atributo.
  2. - : pašalinamas esamo failų atributo atributas.
  3. = : išsaugokite esamus failų atributus.

Čia mes parodysime keletą „chattr“ komandų pavyzdžių, norėdami nustatyti/panaikinti atributus failui ir aplankams.

1. Kaip pridėti atributus failuose, kad apsaugotumėte juos nuo ištrynimo

Demonstravimo tikslais naudojome atitinkamai aplanką demonstracinė versija ir failą svarbi_failas.conf . Prieš nustatydami atributus, įsitikinkite, kad esamuose failuose yra atributų, nustatytų naudojant komandą ‘ls -l’. Ar matėte rezultatus, šiuo metu atributas nenustatytas.

 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

Norėdami nustatyti atributą, mes naudojame ženklą + ir panaikinkite ženklą - naudodami komandą chattr. Taigi nustatykime nekeičiamą bitą failuose su žymėmis + i , kad niekas negalėtų ištrinti failo, net pagrindinis vartotojas neturi leidimo jį ištrinti.

 chattr +i demo/
 chattr +i important_file.conf

Pastaba: Nekintamą bitą + i gali nustatyti tik supernaudotojo (t. Y. Šaknies) vartotojas arba vartotojas, turintis sudo teises, gali nustatyti.

Nustačius nekintamą bitą, patikrinkime atributą naudodami komandą „lsattr“.

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

Dabar bandė priverstinai ištrinti, pervadinti ar pakeisti leidimus, tačiau neleidžiama sakyti „Operacija neleidžiama“.

 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. Kaip atributą nustatyti failuose

Ankstesniame pavyzdyje mes matėme, kaip nustatyti atributą saugai ir užkirsti kelią atsitiktiniam failų ištrynimui. Čia šiame pavyzdyje pamatysime, kaip atkurti (atkurti atributo) teises ir leisti padaryti failus keičiamus ar keičiamus naudojant - aš vėliava.

 chattr -i demo/ important_file.conf

Iš naujo nustatę teises, patikrinkite failų nekintamą būseną naudodami komandą „lsattr“.

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

Ankstesniuose rezultatuose matote, kad „-i“ vėliava pašalinta, o tai reiškia, kad galite saugiai pašalinti visus failus ir aplankus, esančius „tecmint“ aplanke.

 rm -rf *

 ls -l
total 0

3. Kaip apsaugoti/etc/passwd ir/etc/shadow failus

Nustačius nekintamą atributą failuose /etc/passwd arba /etc/shadow , jie bus apsaugoti nuo atsitiktinio pašalinimo ar klastojimo, taip pat išjungs vartotojo abonemento kūrimą.

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

Dabar pabandykite sukurti naują sistemos vartotoją, gausite klaidos pranešimą, kuriame sakoma „negalima atidaryti/etc/passwd“.

 useradd tecmint
useradd: cannot open /etc/passwd

Tokiu būdu galite nustatyti nekeičiamas svarbių failų ar sistemos konfigūracijos failų teises, kad išvengtumėte jų ištrynimo.

4. Pridėkite duomenis nekeisdami esamų failo duomenų

Tarkime, jūs norite leisti tik visiems pridėti duomenis prie failo, nekeičiant ar nekeičiant jau įvestų duomenų, galite naudoti atributą „a“ taip.

 chattr +a example.txt

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

Nustačius priedo režimą, failą galima atidaryti tik įrašymo režimu. Galite panaikinti priedo atributą taip.

 chattr -a example.txt

Dabar pabandykite pakeisti jau esamą failo example.txt turinį, gausite klaidą sakydami „Operacija neleidžiama“.

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

Dabar pabandykite pridėti naują turinį esamame faile example.txt ir patvirtinkite.

 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. Kaip apsaugoti katalogus

Norėdami apsaugoti visą katalogą ir jo failus, mes naudojame „-R“ (rekursyviai) jungiklį su „+ i“ vėliava kartu su visu aplanko keliu.

 chattr -R +i myfolder

Nustatę rekursyvų atributą, pabandykite ištrinti aplanką ir jo failus.

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

Norėdami panaikinti leidimą, mes naudojame tą patį „-R“ (rekursyviai) jungiklį su „-i“ vėliava kartu su visu aplanko keliu.

 chattr -R -i myfolder

Viskas! Norėdami sužinoti daugiau apie „chattr“ komandos atributus, žymes ir parinktis, naudokitės vadovo puslapiais.