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.

  1. Ako se datoteci pristupa sa postavljenim atributom „A“, njen zapis vremena se ne ažurira.
  2. Ako je datoteka modificirana sa postavljenim atributom „S“, promjene se ažuriraju sinhrono na disku.
  3. Datoteka je postavljena s atributom 'a', može se otvoriti samo u načinu dodavanja radi pisanja.
  4. 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.
  5. Postavljena je datoteka s atributom 'j', sve njene informacije se ažuriraju u ext3 dnevnik prije nego što se ažuriraju u samu datoteku.
  6. Fajl je postavljen s atributom 't', bez spajanja repova.
  7. Datoteka s atributom 'd' više neće biti kandidat za sigurnosnu kopiju kada se pokrene dump proces.
  8. Kada se fajl sa atributom „u“ izbriše, njegovi podaci se pohranjuju. Ovo omogućava korisniku da zatraži njegovo poništavanje brisanja.
Operater
  1. + : Dodaje atribut postojećem atributu fajlova.
  2. : Uklanja atribut postojećem atributu datoteka.
  3. = : 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.