5 chattr -komentoa tärkeiden tiedostojen muuttamiseksi muuttumattomiksi (muuttumattomiksi) Linuxissa


chattr (Muuta määritettä) on komentorivin Linux-apuohjelma, jota käytetään asettamaan/poistamaan tiettyjä määritteitä Linux-järjestelmässä olevalle tiedostolle tärkeiden tiedostojen ja kansioiden vahingossa tapahtuvan poistamisen tai muokkaamisen varmistamiseksi, vaikka olet kirjautunut sisään sisään pääkäyttäjänä.

Linuxin alkuperäisissä tiedostojärjestelmissä, eli ext2, ext3, ext4, btrfs jne., Tukee kaikkia lippuja, vaikka kaikki liput eivät tue kaikkia muita kuin natiiveja FS-tiedostoja. Tiedostoa/kansiota ei voi poistaa tai muokata, kun määritteet on asetettu chattr-komennolla, vaikka heillä olisi siihen kaikki oikeudet.

Tämä on erittäin hyödyllistä määritettäessä määritteitä järjestelmätiedostoihin, kuten passwd- ja shadow-tiedostoihin, joissa käyttäjän tiedot sisältävät.

# chattr [operator] [flags] [filename]

Seuraavassa on luettelo yleisistä määritteistä ja niihin liittyvät liput voidaan asettaa/poistaa käytöstä chattr-komennolla.

  1. Jos tiedostoon käytetään A-määritesarjaa, sen atime-tietuetta ei päivitetä.
  2. Jos tiedostoa muokataan S-attribuuttisarjalla, muutokset päivitetään synkronisesti levylle.
  3. Tiedostossa on määritetty ‘a’ -attribuutti, ja se voidaan avata vain liitetilassa kirjoitusta varten.
  4. Tiedostoon on määritetty 'i' -attribuutti, jota ei voi muokata (muuttamaton). Ei tarkoita nimeämistä, symbolisen linkin luomista, suorittamista, kirjoitettavuutta, vain pääkäyttäjä voi poistaa määritteen.
  5. Tiedosto, jonka attribuutti on j, on asetettu, kaikki sen tiedot päivitetään ext3-päiväkirjaan ennen kuin ne päivitetään itse tiedostoon.
  6. Tiedostoon on määritetty attribuutti t, ei hännän yhdistämistä.
  7. Tiedosto, jonka attribuutti on d, ei enää ehdota varmuuskopiointiin, kun dump-prosessi suoritetaan.
  8. Kun tiedostossa on u-attribuutti, se tallennetaan. Tämän avulla käyttäjä voi pyytää sen poistamista.

  1. + : Lisää määritteen tiedostojen nykyiseen määritteeseen.
  2. - : Poistaa määritteen tiedostojen olemassa olevasta määritteestä.
  3. = : Säilytä tiedostojen nykyiset määritteet.

Tässä aiomme esitellä joitain chattr-komennon esimerkkejä määritettäessä/poistamalla määritteet tiedostolle ja kansioille.

1. Kuinka lisätä tiedostoihin määritteitä suojaamaan poistolta

Esittelytarkoituksiin olemme käyttäneet kansiota esittely ja tiedostoa tärkeä_tiedosto.conf . Ennen määritteiden määrittämistä varmista, että olemassa olevissa tiedostoissa on määritetty määritteitä käyttämällä ”ls -l” -komentoa. Näitkö tuloksia, tällä hetkellä mitään määritettä ei ole asetettu.

 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

Määritteen määrittämiseksi käytämme + -merkkiä ja poistat - -merkin chattr-komennolla. Joten asetetaan muuttumaton bitti tiedostoihin, joissa on + i -merkinnät, jotta estetään ketään poistamasta tiedostoa, edes pääkäyttäjällä ei ole lupaa poistaa sitä.

 chattr +i demo/
 chattr +i important_file.conf

Huomaa: Muuttamattoman bitin + i voi asettaa vain pääkäyttäjä (ts. Pääkäyttäjä) tai käyttäjä, jolla on sudo-oikeudet, voi asettaa.

Kun olet asettanut muuttumattoman bitin, tarkista attribuutti komennolla 'lsattr'.

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

Yritit nyt poistaa pakotetta, nimetä uudelleen tai muuttaa käyttöoikeuksia, mutta se ei salli sanoa "Toiminta ei ole sallittua".

 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. Määritteen poistaminen tiedostoista

Yllä olevassa esimerkissä olemme nähneet, kuinka määritetään attribuutti suojaamaan ja estämään tiedostot vahingossa tapahtuvalta poistamiselta, tässä tässä esimerkissä näemme, kuinka nollaa (poista määritteen määritykset) käyttöoikeudet ja mahdollistaa tiedostojen muuttamisen vaihdettaviksi - lippun.

 chattr -i demo/ important_file.conf

Kun olet palauttanut käyttöoikeudet, tarkista tiedostojen muuttumaton tila ”lsattr” -komennolla.

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

Näet yllä olevista tuloksista, että -i-lippu poistettiin, mikä tarkoittaa, että voit turvallisesti poistaa kaikki tecmint-kansiossa olevat tiedostot ja kansiot.

 rm -rf *

 ls -l
total 0

3. Kuinka suojata tiedostot/etc/passwd ja/etc/shadow

Määritettävän attribuutin asettaminen tiedostoihin /etc/passwd tai /etc/shadow suojaa ne vahingossa tapahtuvalta poistolta tai peukaloinnilta ja myös poistaa käyttäjätilin luomisen käytöstä.

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

Yritä nyt luoda uusi järjestelmän käyttäjä, saat virheilmoituksen "ei voi avata/etc/passwd".

 useradd tecmint
useradd: cannot open /etc/passwd

Näin voit asettaa muuttumattomia käyttöoikeuksia tärkeille tiedostoillesi tai järjestelmän kokoonpanotiedostoille estämään poistamisen.

4. Liitä tiedot muuttamatta tiedostossa olevia tietoja

Oletetaan, että haluat vain sallia kaikkien liittävän vain tiedostoon tietoja muuttamatta tai muuttamatta jo syötettyjä tietoja, voit käyttää a-attribuuttia seuraavasti.

 chattr +a example.txt

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

Kun olet asettanut liitetilan, tiedosto voidaan avata tietojen kirjoittamista varten vain liitetilassa. Voit poistaa Liitä-määritteen seuraavasti.

 chattr -a example.txt

Yritä nyt korvata jo olemassa oleva sisältö tiedostossa example.txt, saat virheilmoituksen sanomalla "Toiminta ei ole sallittu".

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

Yritä nyt liittää uutta sisältöä olemassa olevaan tiedostoon example.txt ja varmista se.

 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. Hakemistojen suojaaminen

Suojaamaan koko hakemisto ja sen tiedostot käytämme ‘-R’ -kytkintä (rekursiivisesti) + + i-lipun kanssa kansion täydellä polulla.

 chattr -R +i myfolder

Kun olet määrittänyt rekursiivisen määritteen, yritä poistaa kansio ja sen tiedostot.

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

Luvan peruuttamiseksi käytämme samaa ”-R” (rekursiivisesti) -kytkintä ”-i” -lipun kanssa kansion koko polun kanssa.

 chattr -R -i myfolder

Se siitä! Jos haluat tietää enemmän chattr-komentomääritteistä, liput ja vaihtoehdot, käytä man-sivuja.