5 ukazov chattr, da pomembne datoteke postanejo nespremenljive (nespremenljive) v Linuxu
chattr (Spremeni atribut) je pripomoček za ukazno vrstico Linux, ki se uporablja za nastavitev/razveljavitev določenih atributov datoteke v sistemu Linux, da se zagotovi nenamerno brisanje ali spreminjanje pomembnih datotek in map, čeprav ste prijavljeni kot korenski uporabnik.
V izvornih datotečnih sistemih Linux, tj. Ext2, ext3, ext4, btrfs itd., Podpira vse zastavice, čeprav vse zastavice ne bodo podprte za vse tuje FS. Datoteke/mape ni mogoče izbrisati ali spremeniti, ko so atributi nabori z ukazom chattr, čeprav ima za to vsa dovoljenja.
To je zelo koristno za nastavitev atributov v sistemskih datotekah, kot so datoteke passwd in shadow, v katerih so informacije o uporabniku.
# chattr [operator] [flags] [filename]
Sledi seznam pogostih atributov in pripadajoče zastave lahko nastavite/izključite z ukazom chattr.
- Če do datoteke dostopate z naborom atributov „A“, se njen časovni zapis ne posodobi.
- Če je datoteka spremenjena z nastavljenim atributom ‘S’, se spremembe na disku sinhrono posodobijo.
- Datoteka je nastavljena z atributom ‘a’, za pisanje jo je mogoče odpreti samo v načinu dodajanja.
- Datoteka je nastavljena z atributom 'i', je ni mogoče spremeniti (nespremenljiva). Pomeni brez preimenovanja, brez ustvarjanja simbolnih povezav, brez izvedbe, brez pisanja, samo super uporabnik lahko odstrani atribut.
- Nastavljena je datoteka z atributom ‘j’, vse njene informacije pa se posodobijo v dnevnik ext3, preden se posodobijo v samo datoteko.
- Datoteka je nastavljena z atributom ‘t’, brez spajanja repa.
- Datoteka z atributom "d" ne bo več kandidat za varnostno kopijo, ko se zažene postopek izpisa.
- Ko se v datoteki izbriše atribut ‘u’, se njeni podatki shranijo. To uporabniku omogoča, da zahteva njegovo izbris.
- + : doda atribut obstoječemu atributu datotek.
- - : Odstrani atribut obstoječemu atributu datotek.
- = : obdržite obstoječe atribute, ki jih imajo datoteke.
Tukaj bomo prikazali nekaj primerov ukaza chattr za nastavitev/razveljavitev atributov v datoteki in mapah.
1. Kako dodati atribute datotekam, da jih zaščitimo pred brisanjem
Za predstavitev smo uporabili mapo demo in datoteko important_file.conf . Pred nastavitvijo atributov preverite, ali so obstoječe datoteke z ukazom ls -l nastavljene na katere koli atribute. Ali ste videli rezultate, trenutno ni nastavljen noben atribut.
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
Za nastavitev atributa uporabimo znak +, za ukinitev pa z ukazom chattr. Torej, nastavimo nespremenljiv bit na datotekah z zastavicami + i , da preprečimo nikomur brisanje datoteke, niti korenski uporabnik nima dovoljenja za njeno brisanje.
chattr +i demo/ chattr +i important_file.conf
Opomba: Nespremenljivi bit + i lahko nastavi samo uporabnik superuser (tj. Root) ali uporabnik s privilegiji sudo, ki ga lahko nastavi.
Po nastavitvi nespremenljivega bita preverimo atribut z ukazom lsattr.
lsattr ----i----------- ./demo ----i----------- ./important_file.conf
Zdaj poskusite na silo izbrisati, preimenovati ali spremeniti dovoljenja, vendar ne bo dovoljeno, piše »Operacija ni dovoljena«.
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. Kako razveljaviti atribut v datotekah
V zgornjem primeru smo videli, kako nastavimo atribut za zaščito in preprečitev naključnega brisanja datotek, tukaj v tem primeru bomo videli, kako ponastaviti (razveljaviti atribut) dovoljenja in omogoča, da datoteke spremenimo ali spremenimo z uporabo - i zastavico.
chattr -i demo/ important_file.conf
Po ponastavitvi dovoljenj z ukazom lsattr preverite nespremenljivo stanje datotek.
lsattr ---------------- ./demo ---------------- ./important_file.conf
V zgornjih rezultatih vidite, da je bila zastavica ‘-i’ odstranjena, kar pomeni, da lahko varno odstranite vso datoteko in mapo, ki se nahajajo v mapi tecmint.
rm -rf * ls -l total 0
3. Kako zavarovati datoteke/etc/passwd in/etc/shadow
Če nastavite nespremenljiv atribut na datotekah /etc/passwd ali /etc/shadow , jih zaščitite pred nenamernim odstranjevanjem ali poseganjem in onemogočite ustvarjanje uporabniškega računa.
chattr +i /etc/passwd chattr +i /etc/shadow
Zdaj poskusite ustvariti novega sistemskega uporabnika, prikazalo se bo sporočilo o napaki z besedo "ne morem odpreti/etc/passwd".
useradd tecmint useradd: cannot open /etc/passwd
Na ta način lahko nastavite nespremenljiva dovoljenja za pomembne datoteke ali sistemske konfiguracijske datoteke, da preprečite njihovo brisanje.
4. Dodaj podatke brez spreminjanja obstoječih podatkov v datoteki
Recimo, da želite vsem omogočiti samo dodajanje podatkov v datoteko, ne da bi spremenili ali spremenili že vnesene podatke, lahko uporabite atribut ‘a’, kot sledi.
chattr +a example.txt lsattr example.txt -----a---------- example.txt
Po nastavitvi načina dodajanja lahko datoteko odprete za zapisovanje podatkov samo v načinu dodajanja. Atribut za dodajanje lahko odstranite na naslednji način.
chattr -a example.txt
Zdaj poskusite nadomestiti že obstoječo vsebino v datoteki example.txt, prišlo bo do napake z besedo "Operacija ni dovoljena".
echo "replace contain on file." > example.txt -bash: example.txt: Operation not permitted
Zdaj poskusite dodati novo vsebino obstoječi datoteki example.txt in jo preveriti.
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. Kako zavarovati imenike
Za zaščito celotnega imenika in njegovih datotek uporabljamo stikalo '-R' (rekurzivno) z zastavico '+ i' skupaj s polno potjo mape.
chattr -R +i myfolder
Po nastavitvi rekurzivnega atributa poskusite izbrisati mapo in njene datoteke.
rm -rf myfolder/ rm: cannot remove 'myfolder/': Operation not permitted
Za razveljavitev dovoljenja uporabimo isto stikalo '-R' (rekurzivno) z zastavico '-i' skupaj s polno potjo mape.
chattr -R -i myfolder
To je to! Če želite izvedeti več o atributih, zastavicah in možnostih ukaza chattr, uporabite strani z navodili.