5 tērzēšanas komandas, lai padarītu svarīgus failus nemaināmus (nemaināmus) Linux


chattr (Mainīt atribūtu) ir komandrindas Linux lietderība, ko izmanto, lai iestatītu/atiestatītu noteiktus faila atribūtus Linux sistēmā, lai nodrošinātu nejaušu svarīgu failu un mapju dzēšanu vai modificēšanu, pat ja esat reģistrējies. iekšā kā root lietotājs.

Linux vietējās failu sistēmās, t.i., ext2, ext3, ext4, btrfs utt. Atbalsta visus karodziņus, lai gan visi karodziņi neatbalstīs visus vietējos FS. Nevar izdzēst vai modificēt failu/mapi, ja atribūti ir iestatīti ar komandu chattr, kaut arī tam ir pilnas atļaujas.

Tas ir ļoti noderīgi, lai iestatītu atribūtus sistēmas failos, piemēram, paroles un ēnu failos, kuros ir lietotāja informācija.

# chattr [operator] [flags] [filename]

Tālāk ir saraksts ar kopējiem atribūtiem, un saistītos karodziņus var iestatīt/atiestatīt, izmantojot komandu chattr.

  1. Ja failam piekļūst ar atribūtu kopu “A”, tā laika ieraksts netiek atjaunināts.
  2. Ja fails tiek modificēts ar atribūtu kopu “S”, izmaiņas tiek sinhroni atjauninātas diskā.
  3. Failam ir iestatīts atribūts ‘a’, to var atvērt tikai pievienošanas režīmā rakstīšanai.
  4. Failam ir iestatīts atribūts ‘i’, to nevar mainīt (nemaināms). Nozīmē, ka at pārdēvēšanu, simbolisku saišu izveidi, izpildi, rakstāmu atribūtu nevar atiestatīt tikai virslietotājs.
  5. Ir iestatīts fails ar atribūtu ‘j’, visa tā informācija tiek atjaunināta ext3 žurnālā, pirms tiek atjaunināta pašā failā.
  6. Failam ir iestatīts atribūts ‘t’, bez astes sapludināšanas.
  7. Fails ar atribūtu ‘d’ vairs nebūs kandidāts dublēšanai, kad tiek palaists dump process.
  8. Kad failam ir atribūts “u”, tā dati tiek saglabāti. Tas ļauj lietotājam lūgt tā dzēšanu.

  1. + : pievieno atribūtu esošo failu atribūtam.
  2. - : noņem atribūtu esošajam failu atribūtam.
  3. = : saglabājiet failos esošos atribūtus.

Šeit mēs parādīsim dažus chattr komandu piemērus, lai failam un mapēm iestatītu/atiestatītu atribūtus.

1. Kā failiem pievienot atribūtus, lai pasargātu tos no dzēšanas

Demonstrācijas nolūkos esam izmantojuši attiecīgi mapi demonstrācija un failu svarīgs_fails.conf . Pirms atribūtu iestatīšanas pārliecinieties, vai esošajos failos ir iestatīti atribūti, izmantojot komandu ‘ls -l’. Vai redzējāt rezultātus, pašlaik neviens atribūts nav iestatīts.

 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

Lai iestatītu atribūtu, mēs izmantojam zīmi + un, lai atiestatītu, izmantojiet zīmi - ar komandu chattr. Tātad, iestatīsim nemaināmus failus failiem ar karodziņiem + i , lai neļautu nevienam izdzēst failu, pat root lietotājam nav atļaujas to izdzēst.

 chattr +i demo/
 chattr +i important_file.conf

Piezīme: Nemaināmo bitu + i var iestatīt tikai superlietotāja (t.i., root) lietotājs vai lietotājs, kuram ir sudo privilēģijas, var iestatīt.

Pēc nemaināmā bita iestatīšanas pārbaudīsim atribūtu ar komandu ‘lsattr’.

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

Tagad mēģinājāt spēcīgi izdzēst, pārdēvēt vai mainīt atļaujas, taču tas neatļaus tekstu “Operācija nav atļauta”.

 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. Kā atiestatīt atribūtu failos

Iepriekš minētajā piemērā mēs redzējām, kā iestatīt atribūtu, lai aizsargātu un novērstu failu nejaušu dzēšanu, šeit šajā piemērā mēs redzēsim, kā atiestatīt (atiestatīt atribūtu) atļaujas un ļauj padarīt failus maināmus vai maināmus, izmantojot - es karogu.

 chattr -i demo/ important_file.conf

Pēc atļauju atiestatīšanas pārbaudiet failu nemaināmo statusu, izmantojot komandu ‘lsattr’.

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

Iepriekš redzamajos rezultātos redzat, ka karogs ‘-i’ ir noņemts, tas nozīmē, ka varat droši noņemt visu failu un mapi, kas atrodas mapē tecmint.

 rm -rf *

 ls -l
total 0

3. Kā nodrošināt/etc/passwd un/etc/shadow failus

Iestatot nemaināmu atribūtu failiem /etc/passwd vai /etc/shadow , tie tiek pasargāti no nejaušas noņemšanas vai sagrozīšanas, kā arī tiks atspējota lietotāja konta izveide.

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

Tagad mēģiniet izveidot jaunu sistēmas lietotāju, un tiks parādīts kļūdas ziņojums “Nevar atvērt/etc/passwd”.

 useradd tecmint
useradd: cannot open /etc/passwd

Tādā veidā jūs varat iestatīt nemaināmas atļaujas svarīgiem failiem vai sistēmas konfigurācijas failiem, lai novērstu dzēšanu.

4. Pievienojiet datus, nemainot failā esošos datus

Pieņemsim, ka vēlaties visiem atļaut tikai pievienot datus failam, nemainot vai nemodificējot jau ievadītos datus, atribūtu ‘a’ varat izmantot šādi.

 chattr +a example.txt

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

Pēc pievienošanas režīma iestatīšanas failu var atvērt datu ierakstīšanai tikai pievienošanas režīmā. Atribūtu pievienot var atiestatīt šādi.

 chattr -a example.txt

Tagad mēģiniet aizstāt jau esošu saturu failā example.txt, parādot kļūdu, sakot “Darbība nav atļauta”.

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

Tagad mēģiniet pievienot jaunu saturu esošam failam example.txt un pārbaudiet to.

 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. Kā nodrošināt direktorijus

Lai aizsargātu visu direktoriju un tā failus, mēs izmantojam slēdzi ‘-R’ (rekursīvi) ar karogu ‘+ i’ un pilnu mapes ceļu.

 chattr -R +i myfolder

Pēc rekursīva atribūta iestatīšanas mēģiniet izdzēst mapi un tās failus.

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

Lai atiestatītu atļauju, mēs izmantojam to pašu ‘-R’ (rekursīvi) slēdzi ar ‘-i’ karodziņu kopā ar pilnu mapes ceļu.

 chattr -R -i myfolder

Tieši tā! Lai uzzinātu vairāk par chattr komandu atribūtiem, karodziņiem un opcijām, izmantojiet manuālās lapas.