5 chattr Commands sa Paghimo Importante nga mga File IMMUTABLE (Dili Mausab) sa Linux


chattr (Change Attribute) kay usa ka command line Linux utility nga gigamit sa pag set/unset sa pipila ka attribute sa file sa Linux system para masiguro ang aksidenteng pagtangtang o pag-usab sa importanteng files ug folders, bisag naka-log ka. sa ingon usa ka gamut nga tiggamit.

Sa Linux lumad nga filesystems ie ext2, ext3, ext4, btrfs, ug uban pa nagsuporta sa tanan nga mga bandera, bisan kung ang tanan nga mga bandera dili mosuporta sa tanan nga dili lumad nga FS. Ang usa dili makatangtang o makausab sa file/folder sa higayon nga ang mga hiyas mabutang sa chattr command, bisan pa nga ang usa adunay bug-os nga permiso niini.

Kini mapuslanon kaayo sa pagtakda sa mga hiyas sa mga file sa sistema sama sa passwd ug shadow files diin ang impormasyon sa user anaa.

# chattr [operator] [flags] [filename]

Ang mosunod mao ang lista sa komon nga mga hiyas ug ang mga kaubang mga bandera mahimong itakda/i-unset gamit ang chattr command.

  1. Kon ang usa ka payl ma-access gamit ang 'A' nga attribute set, ang atime record niini dili ma-update.
  2. Kon ang usa ka file giusab uban sa 'S' nga set sa hiyas, ang mga pagbag-o kay dungan nga mga update sa disk.
  3. Ang usa ka file gitakda nga adunay 'a' attribute, mahimo ra nga ablihan sa append mode para sa pagsulat.
  4. Ang usa ka file gitakda nga adunay 'i' nga hiyas, dili mahimong usbon (dili mausab). Nagpasabot nga walay pag-usab sa ngalan, walay simbolikong sumpay nga pagmugna, walay execution, walay masulat, superuser lang ang maka-unset sa attribute.
  5. Usa ka payl nga adunay 'j' attribute kay gitakda, ang tanang impormasyon niini gi-update sa ext3 journal sa dili pa i-update sa file mismo.
  6. Usa ka payl gitakda sa 't' attribute, walay ikog-paghiusa.
  7. Usa ka file nga adunay attribute nga 'd', dili na mahimong kandidato alang sa backup kung ang proseso sa dump gipadagan.
  8. Kung ang usa ka file adunay 'u' nga hiyas matangtang, ang datos niini ma-save. Kini makapahimo sa user sa pagpangayo sa iyang pag-undelete.

  1. + : Idugang ang attribute sa kasamtangan nga attribute sa files.
  2. : Pagtangtang sa attribute sa kasamtangan nga attribute sa files.
  3. = : Hupti ang kasamtangan nga mga hiyas nga anaa sa mga file.

Dinhi, atong ipakita ang pipila sa mga pananglitan sa chattr command aron i-set/unset ang mga attribute sa usa ka file ug folder.

1. Giunsa pagdugang ang mga hiyas sa mga file aron masiguro gikan sa pagtangtang

Alang sa katuyoan sa pagpakita, migamit kami og folder demo ug file important_file.conf matag usa. Sa wala pa i-set up ang mga hiyas, siguruha nga pamatud-an nga ang naglungtad nga mga file adunay bisan unsang mga hiyas nga gitakda gamit ang 'ls -l' nga mando. Nakita ba nimo ang mga resulta, sa pagkakaron walay attribute nga gitakda.

 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

Para mabutang ang attribute, gamiton namo ang + sign ug para unset gamita ang sign gamit ang chattr command. Busa, ibutang nato ang dili mausab nga gamay sa mga file nga adunay +i nga mga bandera aron mapugngan ang bisan kinsa sa pagtangtang sa usa ka file, bisan ang usa ka root user walay pagtugot sa pagtangtang niini.

 chattr +i demo/
 chattr +i important_file.conf

Pahinumdom: Ang dili mausab nga bit +i mahimo ra itakda sa superuser (i.e root) user o usa ka user nga adunay sudo privileges ang makahimo sa pag-set.

Human mabutang ang dili mausab nga gamay, atong pamatud-an ang hiyas nga adunay command 'lsattr'.

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

Karon, misulay sa pagtangtang sa kusog, pagbag-o sa ngalan o pagbag-o sa mga pagtugot, apan dili kini tugutan nga giingon nga Dili gitugotan ang operasyon.

 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. Unsaon pag-unset ang attribute sa Files

Sa pananglitan sa ibabaw, among nakita kung giunsa ang pag-set sa attribute aron masiguro ug mapugngan ang mga file gikan sa aksidenteng pagtangtang, dinhi niini nga pananglitan, atong makita kung unsaon pag-reset (unset attribute) nga mga permiso ug tugotan ang paghimo sa usa ka file nga mausab o mausab gamit - bandera ko.

 chattr -i demo/ important_file.conf

Human sa pag-reset sa mga permiso, susiha ang dili mausab nga kahimtang sa mga file gamit ang 'lsattr' nga sugo.

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

Nakita nimo sa mga resulta sa ibabaw nga ang '-i' nga bandila gikuha, kana nagpasabut nga mahimo nimong luwas nga makuha ang tanan nga file ug folder nga nagpuyo sa tecmint folder.

 rm -rf *

 ls -l
total 0

3. Unsaon Pag-secure sa /etc/passwd ug /etc/shadow files

Ang pagpahimutang sa dili mausab nga attribute sa mga file /etc/passwd o /etc/shadow, naghimo kanila nga luwas gikan sa usa ka aksidenteng pagtangtang o tamper ug usab dili kini makahimo sa paghimo sa user account.

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

Karon sulayi paghimo ang usa ka bag-ong tiggamit sa sistema, makadawat ka nga mensahe sa sayup nga nag-ingon 'dili maablihan /etc/passwd'.

 useradd tecmint
useradd: cannot open /etc/passwd

Niining paagiha mahimo nimong itakda ang dili mausab nga mga pagtugot sa imong hinungdanon nga mga file o mga file sa pag-configure sa sistema aron malikayan ang pagtangtang.

4. Idugang ang datos nga walay Pag-usab sa kasamtangan nga datos sa usa ka File

Pananglit, gusto lang nimo nga tugutan ang tanan nga idugang ang data sa usa ka file nga wala magbag-o o magbag-o sa nasulod na nga datos, mahimo nimong gamiton ang 'a' attribute sama sa mosunod.

 chattr +a example.txt

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

Human ma-set ang append mode, ang file mahimong maablihan para sa pagsulat og data sa append mode lang. Mahimo nimong i-unset ang append attribute sama sa mosunod.

 chattr -a example.txt

Karon sulayi ang pag-ilis sa naa na nga sulud sa usa ka file example.txt, makakuha ka nga sayup nga nag-ingon 'Dili gitugotan ang operasyon'.

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

Karon sulayi ang pagdugang og bag-ong sulod sa usa ka kasamtangan nga file example.txt ug pamatud-i kini.

 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. Unsaon Pagsiguro sa mga Direktoryo

Aron ma-secure ang tibuuk nga direktoryo ug ang mga file niini, gigamit namon ang '-R' (recursively) switch nga adunay bandila nga '+i' kauban ang tibuuk nga agianan sa folder.

 chattr -R +i myfolder

Human mabutang ang recursively attribute, sulayi nga papason ang folder ug ang mga file niini.

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

Aron ma-unset ang pagtugot, gigamit namon ang parehas nga '-R' (recursively) switch nga adunay bandila nga '-i' kauban ang tibuuk nga agianan sa folder.

 chattr -R -i myfolder

Mao na! Aron mahibal-an ang dugang bahin sa mga hiyas sa chattr command, mga bandila ug mga kapilian gamita ang mga panid sa tawo.