Iwu chattr 5 iji mee ka faịlụ ndị dị mkpa IMMUTABLE (anaghị agbanwe agbanwe) na Linux


chattr (Change Attribute) bụ ngwa Linux na-enye iwu nke a na-eji tọọ/iwepụ àgwà ụfọdụ na faịlụ dị na sistemụ Linux iji chekwaa ihichapụ ma ọ bụ mgbanwe nke faịlụ na nchekwa dị mkpa na mberede, n'agbanyeghị na ị banyela. dị ka onye ọrụ mgbọrọgwụ.

Na sistemụ faịlụ ala Linux dịka ext2, ext3, ext4, btrfs, wdg na-akwado ọkọlọtọ niile, n'agbanyeghị ọkọlọtọ niile agaghị akwado ndị FS niile na-abụghị ụmụ amaala. Mmadụ enweghị ike ihichapụ ma ọ bụ gbanwee faịlụ/nchekwa ozugbo e debere njirimara na iwu chattr, n'agbanyeghị na mmadụ nwere ikike zuru oke na ya.

Nke a bara ezigbo uru ịtọ njiri mara na faịlụ sistemu dị ka passwd na faịlụ onyinyo ebe ozi onye ọrụ nwere.

# chattr [operator] [flags] [filename]

Ndị na-esonụ bụ ndepụta nke àgwà ndị a na-ahụkarị yana ọkọlọtọ nwere ike ịtọ/ịtọghe ya site na iji iwu chattr.

  1. Ọ bụrụ faịlụ ejiri njiri 'A' nweta, anaghị emelite ndekọ atime ya.
  2. Ọ bụrụ na ejiri 'S' gbanwetụrụ faịlụ, mgbanwe ndị a na-emelite n'otu oge na diski.
  3. Edobere faịlụ nwere àgwà 'a', enwere ike imeghe naanị na ọnọdụ mgbakwunye maka ide.
  4. Edobere faịlụ nwere njirimara 'i', enweghị ike ịgbanwe ya (enweghị ike ịgbanwe). Pụtara enweghị renaming, enweghị njikọ ihe atụ okike, enweghị ogbugbu, enweghị ederede, naanị superuser nwere ike iwepu njirimara ahụ.
  5. Edobere faịlụ nwere njirimara 'j', emelitere ozi ya niile na akwụkwọ akụkọ ext3 tupu emelite ya na faịlụ ahụ n'onwe ya.
  6. Edobere faịlụ nwere àgwà 't', enweghị njikọ ọdụ.
  7. Faịlụ nwere njirimara 'd' agaghị enwekwa onye ga-akwado nkwado ndabere mgbe a na-eme usoro mkpofu.
  8. Mgbe ehichapụrụ faịlụ nwere njirimara 'u', a na-echekwa data ya. Nke a na-enyere onye ọrụ aka ịrịọ maka ihichapụ ya.

  1. + : Na-agbakwunye njirimara na njirimara faịlụ ndị dị.
  2. : na-ewepụ njirimara nke njirimara faịlụ ndị dị ugbu a.
  3. : Debe njiri mara nke faịlụ ndị ahụ nwere.

N'ebe a, anyị ga-egosipụta ụfọdụ n'ime ihe atụ iwu chattr iji tọọ/iwepụ àgwà na faịlụ na nchekwa.

1. Otu esi agbakwunye àgwà na faịlụ iji chebe site na ihichapụ

Maka ebumnuche ngosi, anyị ejirila folda demo yana faịlụ important_file.conf n'otu n'otu. Tupu ịtọlite àgwà, hụ na ị ga-enyocha na faịlụ ndị dị ugbu a nwere àgwà ọ bụla atọrọ site na iji iwu 'ls -l'. Ị hụla nsonaazụ ya, ugbu a enweghị njirimara edobere.

 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

Iji tọọ àgwà, anyị na-eji akara + na ịtọgharịa jiri akara jiri iwu chattr. Yabụ, ka anyị dobe ntakịrị na faịlụ ndị nwere ọkọlọtọ +i iji gbochie onye ọ bụla ihichapụ faịlụ, ọbụlagodi onye ọrụ mgbọrọgwụ enweghị ikike ihichapụ ya.

 chattr +i demo/
 chattr +i important_file.conf

Mara: Enwere ike ịtọ ntakịrị +i naanị site na onye ọrụ superuser (ya bụ mgbọrọgwụ) ma ọ bụ onye ọrụ nwere ikike sudo nwere ike ịtọ.

Mgbe ịtọchara ntakịrị ihe na-enweghị ike ịgbanwe, ka anyị jiri iwu 'lsattr' nyochaa njirimara a.

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

Ugbu a, nwara ihichapụ ike, nyegharịa aha ma ọ bụ gbanwee ikike, mana agaghị ekwe ka ọ kwuo Achọghị ọrụ.

 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. Otu esi eweghachi àgwà na faịlụ

N'ihe atụ a dị n'elu, anyị ahụla otu esi edobe àgwà iji chekwaa ma gbochie faịlụ site na ihichapụ mberede, ebe a na ọmụmaatụ a, anyị ga-ahụ otu esi emegharị ikike (adịghị edozi àgwà) ma na-enye ohere iji mee ka faịlụ gbanwee ma ọ bụ gbanwee site na iji - m ọkọlọtọ.

 chattr -i demo/ important_file.conf

Mgbe ịtọgharịa ikike, nyochaa ọnọdụ faịlụ na-enweghị mgbanwe site na iji iwu 'lsattr'.

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

Ị na-ahụ na nsonaazụ dị n'elu ka ewepụrụ ọkọlọtọ '-i', nke ahụ pụtara na ị nwere ike wepu faịlụ na folda niile dị na folda tecmt n'enweghị nsogbu.

 rm -rf *

 ls -l
total 0

3. Otu esi echekwa faịlụ /etc/passwd na /etc/shadow

Ịtọlite àgwà enweghị ike ịgbanwe na faịlụ /etc/passwd ma ọ bụ /etc/shadow, na-eme ka ha chebe ha pụọ na mwepụ ma ọ bụ mebie na mberede yana ọ ga-ewepụkwa imepụta akaụntụ onye ọrụ.

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

Ugbu a gbalịa ịmepụta onye ọrụ sistemụ ọhụrụ, ị ga-enweta ozi njehie na-ekwu 'enweghị ike imeghe /etc/passwd'.

 useradd tecmint
useradd: cannot open /etc/passwd

Otu a ị nwere ike ịtọ ikike enweghị mgbanwe na faịlụ gị dị mkpa ma ọ bụ faịlụ nhazi sistemụ iji gbochie ihichapụ.

4. Tinye data na-enweghị Mgbanwe data dị na faịlụ

Ka e were ya na ị chọrọ ikwe ka onye ọ bụla tinye data na faịlụ na-agbanweghị ma ọ bụ gbanwee data abanyelarị, ị nwere ike iji àgwà 'a' dị ka ndị a.

 chattr +a example.txt

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

Mgbe ịtọlitechara ọnọdụ mgbakwunye, enwere ike imeghe faịlụ ahụ maka ide data naanị n'ọnọdụ mgbakwunye. Ị nwere ike ịtọghe njirimara mgbakwunye dị ka ndị a.

 chattr -a example.txt

Ugbu a gbalịa dochie ọdịnaya dị adị na faịlụ example.txt, ị ga-enweta njehie na-ekwu 'Achọghị ọrụ'.

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

Ugbu a gbalịa itinye ọdịnaya ọhụrụ na faịlụ dịnụ example.txt wee nyochaa ya.

 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. Otu esi echekwa akwụkwọ ndekọ aha

Iji chekwaa akwụkwọ ndekọ aha na faịlụ ya niile, anyị na-eji '-R' (na-emegharị ugboro ugboro) jiri ọkọlọtọ '+ i' yana ụzọ nchekwa zuru oke.

 chattr -R +i myfolder

Mgbe ịtọchara njirimara na-emegharị ugboro ugboro, gbalịa ihichapụ folda ahụ na faịlụ ya.

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

Ka ịtọghe ikike, anyị na-eji otu '-R' (na-emegharị ugboro ugboro) gbanwee ya na ọkọlọtọ '-i' yana ụzọ nchekwa zuru ezu.

 chattr -R -i myfolder

Ọ bụ ya! Maka ịmatakwu gbasara njirimara iwu chattr, ọkọlọtọ na nhọrọ jiri ibe nwoke.