Linux-da möhüm faýllary IMMUTABLE (üýtgemeýän) etmek üçin 5 chattr buýrugy
chattr (Attribute Change) buýruk setiri Linux kömekçi ulgamy, hasaba giren bolsaňyzam möhüm faýllaryň we bukjalaryň tötänleýin ýok edilmegini ýa-da üýtgedilmegini üpjün etmek üçin Linux ulgamyndaky bir faýla käbir atributlary bellemek/kesgitlemek üçin ulanylýar. kök ulanyjy hökmünde.
Linux ýerli faýl ulgamlarynda, ýagny ext2, ext3, ext4, btrfs we ş.m. ähli baýdaklary goldaýar, emma ähli baýdaklar ýerli däl FS-leri goldamaýar. Atributlar chattr buýrugy bilen kesgitlenenden soň, faýl/bukjany pozup ýa-da üýtgedip bolmaz, hatda doly ygtyýarlyklary bar.
Ulanyjynyň maglumatlaryny öz içine alýan passwd we kölegeli faýllar ýaly ulgam faýllarynda atributlary bellemek gaty peýdaly.
# chattr [operator] [flags] [filename]
Aşakda umumy häsiýetleriň sanawy we baglanyşykly baýdaklar chattr buýrugyny ulanyp sazlap/sazlap bolýar.
- A atributlar toplumy bilen bir faýla girilse, onuň ýazgysy täzelenenok.
- Eger bir faýl S atributlar toplumy bilen üýtgedilen bolsa, üýtgeşmeler diskdäki sinhron täzelenmelerdir.
- Faýl atribut bilen düzüldi, diňe ýazmak üçin goşundy re modeiminde açyk bolup biler.
- Faýl i atributy bilen düzüldi, üýtgedilip bilinmez (üýtgewsiz). Adynyň üýtgedilmezligi, simwoliki baglanyşyk döredilmezligi, ýerine ýetirilmezligi, ýazylyp bilinmezligi, diňe superuser bu aýratynlygy düzedip biljekdigini aňladýar.
- j häsiýetli bir faýl düzüldi, ähli maglumatlar faýlyň özüne täzelenmezden ozal ext3 journalurnalyna täzelendi.
- Faýl t atributy bilen düzüldi, guýrugy birleşdirmeýär.
- d atributly bir faýl, zibil taşlanylanda ätiýaçlyk üçin kandidat bolmaz.
- Haçan-da bir faýl u häsiýeti pozulsa, maglumatlary saklanýar. Bu ulanyja öçürilmegini soramaga mümkinçilik berýär.
- + : Faýllaryň bar bolan atributyna atribut goşýar.
- - : Faýllaryň bar bolan atributyny aýyrýar.
- =: Faýllarda bar bolan häsiýetleri saklaň.
Bu ýerde, bir faýla we bukjalara atributlary bellemek/düzmek üçin chattr buýruk mysallarynyň käbirini görkezmekçi.
1. Öçürmekden goramak üçin faýllara atributlary nädip goşmaly
Görkeziş maksady bilen, degişlilikde demo bukjasyny we möhüm_file.conf faýlyny ulandyk. Sypatlary gurmazdan ozal, bar bolan faýllaryň ls -l buýrugyny ulanyp, haýsydyr bir atributynyň bardygyny barlaň. Netijeleri gördüňizmi, häzirki wagtda hiç hili atribut ýok.
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
Aýratynlygy bellemek üçin, + belgisini ulanýarys we chattr buýrugy bilen - belgisini ulanýarys. Şeýlelik bilen, faýlyň pozulmagynyň öňüni almak üçin + i baýdaklary bolan faýllara üýtgewsiz bir zat goýalyň, hatda kök ulanyjynyň hem pozmaga rugsady ýok.
chattr +i demo/ chattr +i important_file.conf
Bellik: Üýtgemeýän bit + i diňe superuser (ýagny kök) ulanyjy ýa-da sudo aýratynlyklary bolan ulanyjy belläp biler.
Üýtgemeýän biti düzenimizden soň, lsattr buýrugy bilen häsiýeti barlalyň.
lsattr ----i----------- ./demo ----i----------- ./important_file.conf
Indi zor bilen öçürmäge, adyny üýtgetmäge ýa-da üýtgetmäge synanyşdyk, ýöne Operasiýa rugsat berilmeýär diýilýär.
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. Faýllarda atributy nädip sazlamaly
Aboveokardaky mysalda, faýllaryň tötänleýin öçürilmeginiň öňüni almak we öňüni almak üçin atributy nädip düzmelidigini gördük, bu mysalda, rugsatlary nädip täzeden dikeltmelidigini göreris we faýllary üýtgedip ýa-da üýtgedip boljakdygyny göreris - men baýdak edýärin.
chattr -i demo/ important_file.conf
Rugsatlary täzeden düzeniňizden soň, lsattr buýrugyny ulanyp, faýllaryň üýtgewsiz ýagdaýyny barlaň.
lsattr ---------------- ./demo ---------------- ./important_file.conf
-Iokardaky netijelerde -i baýdagynyň aýrylandygyny görýärsiňiz, ýagny ähli faýly we bukjany tekmint bukjasynda arkaýyn aýyryp bilersiňiz.
rm -rf * ls -l total 0
3./etc/passwd we/etc/kölegeli faýllary nädip goramaly
/etc/passwd ýa-da /etc/shadow faýllarynda üýtgewsiz atribut bellemek, olary tötänleýin aýyrmakdan ýa-da bozmakdan goraýar we ulanyjy hasabynyň döredilmegini ýapýar.
chattr +i /etc/passwd chattr +i /etc/shadow
Indi täze ulgam ulanyjysyny döretmäge synanyşyň, açyp bolmaýar/etc/passwd diýlen säwlik habaryny alarsyňyz.
useradd tecmint useradd: cannot open /etc/passwd
Şeýlelik bilen, pozulmazlygy üçin möhüm faýllaryňyza ýa-da ulgam konfigurasiýa faýllaryňyza üýtgewsiz rugsatlar goýup bilersiňiz.
4. Faýlda bar bolan maglumatlary üýtgetmän maglumatlary goşuň
Diňe, eýýäm girizilen maglumatlary üýtgetmän ýa-da üýtgetmän, diňe bir faýlda maglumatlary goşmaga rugsat bermek isleýärsiňiz, “a” atributyny aşakdaky ýaly ulanyp bilersiňiz.
chattr +a example.txt lsattr example.txt -----a---------- example.txt
Goşundy re modeimini düzenden soň, faýl diňe goşundy re iniminde maglumat ýazmak üçin açylyp bilner. Goşundy atributyny aşakdaky ýaly düzüp bilersiňiz.
chattr -a example.txt
Indi bar bolan mazmuny example.txt faýlynda çalyşmaga synanyşyň, Operasiýa rugsat berilmeýär diýlen ýalňyşlyk ýüze çykar.
echo "replace contain on file." > example.txt -bash: example.txt: Operation not permitted
Indi bar bolan example.txt faýlyna täze mazmun goşup, barlaň.
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. Kataloglary nädip goramaly
Directoryhli katalogy we faýllaryny goramak üçin bukjanyň doly ýoly bilen birlikde “+ i” baýdagy bilen “-R” (gaýtalanýan) wyklýuçatel ulanýarys.
chattr -R +i myfolder
Gaýtalanýan atribut sazlansoň, bukjany we faýllaryny pozmaga synanyşyň.
rm -rf myfolder/ rm: cannot remove 'myfolder/': Operation not permitted
Rugsatnamany aýyrmak üçin, bukjanyň doly ýoly bilen birlikde -i baýdagy bilen şol bir -R (gaýtalanýan) wyklýuçatel ulanýarys.
chattr -R -i myfolder
Bu! Chattr buýruk atributlary, baýdaklar we opsiýalar barada has giňişleýin bilmek üçin adam sahypalaryny ulanyň.