5 'chattr' naredbi kako bi se važni fajlovi učinili NEPROMJENJIVIM (nepromjenjivim) u Linuxu
chattr (Promjena atributa) je Linux uslužni program komandne linije koji se koristi za postavljanje/poništavanje određenih atributa datoteke u Linux sistemu kako bi se osiguralo slučajno brisanje ili modifikacija važnih datoteka i mapa, čak i ako ste prijavljeni u kao root korisnik.
U Linux izvornim sistemima datoteka, tj. ext2, ext3, ext4, btrfs, itd. podržava sve zastavice, iako sve zastavice neće podržavati sve ne-nativne FS. Ne može se brisati ili mijenjati fajl/folder kada su atributi postavljeni sa chattr komandom, iako imate pune dozvole za to.
Ovo je vrlo korisno za postavljanje atributa u sistemskim datotekama kao što su passwd i shadow datoteke u kojima se nalaze informacije o korisniku.
Sintaksa chattr
chattr [operator] [flags] [filename]
Atributi i zastavice
Slijedi lista uobičajenih atributa i pridruženih zastavica koje se mogu postaviti/poništiti pomoću naredbe chattr.
- Ako se datoteci pristupa sa postavljenim atributom „A“, njen zapis vremena se ne ažurira.
- Ako je datoteka modificirana sa postavljenim atributom „S“, promjene se ažuriraju sinhrono na disku.
- Datoteka je postavljena s atributom 'a', može se otvoriti samo u načinu dodavanja radi pisanja.
- Datoteka je postavljena s atributom 'i', ne može se mijenjati (nepromjenjiva). Znači bez preimenovanja, bez kreiranja simboličke veze, bez izvršenja, bez mogućnosti pisanja, samo superkorisnik može poništiti atribut.
- Postavljena je datoteka s atributom 'j', sve njene informacije se ažuriraju u ext3 dnevnik prije nego što se ažuriraju u samu datoteku.
- Fajl je postavljen s atributom 't', bez spajanja repova.
- Datoteka s atributom 'd' više neće biti kandidat za sigurnosnu kopiju kada se pokrene dump proces.
- Kada se fajl sa atributom „u“ izbriše, njegovi podaci se pohranjuju. Ovo omogućava korisniku da zatraži njegovo poništavanje brisanja.
Operater
- + : Dodaje atribut postojećem atributu fajlova.
- – : Uklanja atribut postojećem atributu datoteka.
- = : Zadržite postojeće atribute koje datoteke imaju.
Ovdje ćemo demonstrirati neke od primjera naredbe chattr za postavljanje/poništavanje atributa u datoteci i mapama.
1. Kako dodati atribute datotekama za zaštitu od brisanja
U svrhu demonstracije, koristili smo folder demo i fajl important_file.conf respektivno. Prije postavljanja atributa, provjerite da li postojeće datoteke imaju neke atribute postavljene pomoću naredbe 'ls -l'. Jeste li vidjeli rezultate, trenutno nije postavljen nijedan atribut.
[root@tecmint tecmint]# 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 postavljanje atributa koristimo znak +, a za poništavanje koristi znak – sa chattr komandom. Dakle, postavimo nepromjenjivi bit na fajlovima sa +i zastavicama da spriječimo bilo koga da izbriše datoteku, čak ni root korisnik nema dozvolu da je izbriše.
[root@tecmint tecmint]# chattr +i demo/
[root@tecmint tecmint]# chattr +i important_file.conf
Napomena: Nepromjenjivi bit +i može postaviti samo superkorisnik (tj. root) korisnik ili korisnik sa sudo privilegijama koje može postaviti .
Nakon postavljanja nepromjenjivog bita, provjerimo atribut naredbom 'lsattr'.
[root@tecmint tecmint]# lsattr
----i----------- ./demo
----i----------- ./important_file.conf
Sada sam pokušao nasilno izbrisati, preimenovati ili promijeniti dozvole, ali nije dozvoljeno kaže „Operacija nije dozvoljena“.
[root@tecmint tecmint]# rm -rf demo/
rm: cannot remove âdemo/â: Operation not permitted
[root@tecmint tecmint]# mv demo/ demo_alter
mv: cannot move âdemo/â to âdemo_alterâ: Operation not permitted
[root@tecmint tecmint]# chmod 755 important_file.conf
chmod: changing permissions of âimportant_file.confâ: Operation not permitted
2. Kako poništiti atribut na datotekama
U gornjem primjeru, vidjeli smo kako postaviti atribut za osiguranje i spriječiti datoteke od slučajnog brisanja, ovdje u ovom primjeru ćemo vidjeti kako resetirati (poništiti atribut) dozvole i omogućiti da se fajlovi mogu mijenjati ili mijenjati pomoću < jaka>-i zastava.
[root@tecmint tecmint]# chattr -i demo/ important_file.conf
Nakon resetiranja dozvola, provjerite nepromjenjivi status datoteka pomoću naredbe „lsattr“.
[root@tecmint tecmint]# lsattr
---------------- ./demo
---------------- ./important_file.conf
U gornjim rezultatima vidite da je oznaka „-i“ uklonjena, što znači da možete bezbedno ukloniti sve datoteke i fascikle koje se nalaze u tecmint folderu.
[root@tecmint tecmint]# rm -rf *
[root@tecmint tecmint]# ls -l
total 0
3. Kako osigurati /etc/passwd i /etc/shadow datoteke
Postavljanje nepromjenjivog atributa na datoteke /etc/passwd ili /etc/shadow, čini ih sigurnim od slučajnog uklanjanja ili neovlaštenog pristupa, a također će onemogućiti kreiranje korisničkog računa.
[root@tecmint tecmint]# chattr +i /etc/passwd
[root@tecmint tecmint]# chattr +i /etc/shadow
Sada pokušajte kreirati novog korisnika sistema, dobit ćete poruku o grešci koja kaže ‘ne mogu otvoriti /etc/passwd’.
[root@tecmint tecmint]# useradd tecmint
useradd: cannot open /etc/passwd
Na ovaj način možete postaviti nepromjenjive dozvole za vaše važne datoteke ili sistemske konfiguracijske datoteke kako biste spriječili brisanje.
4. Dodajte podatke bez modifikacije postojećih podataka u datoteci
Pretpostavimo da samo želite svima dopustiti da samo dodaju podatke u datoteku bez promjene ili modifikacije već unesenih podataka, možete koristiti atribut 'a' na sljedeći način.
[root@tecmint tecmint]# chattr +a example.txt
[root@tecmint tecmint]# lsattr example.txt
-----a---------- example.txt
Nakon podešavanja načina dodavanja, datoteka se može otvoriti samo za pisanje podataka u načinu dodavanja. Atribut dodavanja možete poništiti na sljedeći način.
[root@tecmint tecmint]# chattr -a example.txt
Sada pokušajte zamijeniti već postojeći sadržaj u datoteci example.txt, dobit ćete grešku koja kaže „Operacija nije dozvoljena“.
[root@tecmint tecmint]# echo "replace contain on file." > example.txt
-bash: example.txt: Operation not permitted
Sada pokušajte dodati novi sadržaj u postojeću datoteku example.txt i potvrdite je.
[root@tecmint tecmint]# echo "replace contain on file." >> example.txt
[root@tecmint tecmint]# cat example.txt
Here is the example to test 'a' attribute mean append only.
replace contain on file.
5. Kako osigurati direktorije
Da bismo osigurali cijeli direktorij i njegove datoteke, koristimo '-R' (rekurzivno) prekidač sa oznakom '+i' zajedno s punom putanjom do mape.
[root@tecmint tecmint]# chattr -R +i myfolder
Nakon postavljanja rekurzivnog atributa, pokušajte da obrišete folder i njegove datoteke.
[root@tecmint tecmint]# rm -rf myfolder/
rm: cannot remove 'myfolder/': Operation not permitted
Da poništimo dozvolu, koristimo isti prekidač '-R' (rekurzivno) sa '-i' zastavicom zajedno s punom putanjom do mape.
[root@tecmint tecmint]# chattr -R -i myfolder
To je to! Da biste saznali više o atributima komande chattr, zastavicama i opcijama, koristite stranice man.