The chattr (pakeisti atributą) komanda „Linux“ yra galingas įrankis, skirtas keisti failų atributus ext2, ext3 arba ext4 failų sistemoje. Tai leidžia vartotojams nustatyti tam tikrus atributus, kurie valdo, kaip galima pasiekti ir keisti failus. Pavyzdžiui, +i Parinktis padaro failą nekeičiamą, o tai reiškia, kad jo negali pakeisti, ištrinti ar pervardyti net pagrindinis vartotojas, kol nepašalinamas nekeičiamas atributas. Kiti atributai apima +akuri leidžia failą atidaryti tik pridėjimo režimu, ir +ckuris pažymi failą glaudinimui. Ši komanda ypač naudinga sistemos administratoriams, kuriems reikia griežtai kontroliuoti prieigos kontrolę ir apsaugoti svarbius sistemos failus nuo atsitiktinių ar kenkėjiškų pakeitimų. Tačiau jį reikia naudoti atsargiai, nes netinkamas naudojimas gali netyčia apriboti prieigą prie failų.

Būtinos sąlygos

  • Serveris, kuriame veikia Linux operacinė sistema.
  • Serveryje sukonfigūruotas root slaptažodis.

Pagrindinė sintaksė

Pagrindinė sintaksė chattr komanda yra:

chattr (OPTIONS) (OPERATOR)(ATTRIBUTES) FILE

Parinkčių paaiškinimas

  • +: Prideda prie failo konkrečių atributų.
  • -: pašalina konkrečius atributus iš failo.
  • =: nustato nurodytus atributus kaip vienintelius atributus.
  • a: Failą galima atidaryti tik pridėjimo režimu, kad būtų galima rašyti.
  • A: atime įrašas neatnaujintas.
  • c: automatiškai suglaudina failą.
  • i: apsaugo failą nuo atsitiktinio ištrynimo.
  • S: Failų pakeitimai diske įrašomi sinchroniškai.

Failų apsauga nuo atsitiktinio ištrynimo

Svarbių failų apsauga yra labai svarbi bet kuriam sistemos administratoriui. The chattr komanda gali apsaugoti failą, kad joks vartotojas negalėtų jo ištrinti, pervardyti ar modifikuoti.

  1. Sukurkite katalogą ir failą:

    mkdir dir1
    touch file1
    
  2. Spausdinkite abiejų atributus file1 ir dir1:

    ls -l
    

    Išvestis:

    drwxr-xr-x 2 root root 4096 May  3 11:56 dir1
    -rw-r--r-- 1 root root    0 May  3 11:56 file1
    
  3. Nustatykite +i vėliavėlė ant abiejų dir1 ir file1:

    chattr +i dir1
    chattr +i file1
    
  4. Patikrinkite atributą:

    ls -l
    

    Išvestis:

    drwxr-xr-x 2 root root 4096 May  3 11:56 dir1
    -rw-r--r-- 1 root root    0 May  3 11:56 file1
    
  5. Pabandykite ištrinti failą ir katalogą:

    rm -rf file1 dir1
    

    Išvestis:

    rm: cannot remove ‘file1’: Operation not permitted
    rm: cannot remove ‘dir1’: Operation not permitted
    
  6. Pabandykite pervardyti failą:

    mv file1 file2
    

    Išvestis:

    mv: cannot move ‘file1’ to ‘file2’: Operation not permitted
    
  7. Pabandykite pakeisti failo leidimą:

    chmod 777 file1
    

    Išvestis:

    chmod: changing permissions of ‘file1’: Operation not permitted
    

Failų atributų nustatymas iš naujo

Norėdami leisti keisti ir ištrinti failą, iš naujo nustatykite ankstesniame veiksme nustatytus failo atributus:

chattr -i file1 dir1

Dabar galite patikrinti failo ir katalogo būseną:

lsattr

Išvestis:

-------------e-- ./dir1
-------------e-- ./file1

Leidžiama pridėti duomenis nekeičiant esamų duomenų

Jei norite leisti vartotojams tik pridėti duomenis nekeičiant esamų duomenų, naudokite +a vėliavėlė faile.

  1. Sukurkite naują failą su turiniu:

    echo "Hi How Are You" > newfile.txt
    
  2. Nustatykite +a atributas faile:

    chattr +a newfile.txt
    
  3. Pabandykite pakeisti esamą turinį:

    echo "I am replacing" > newfile.txt
    

    Klaida:

    bash: newfile.txt: Operation not permitted
    
  4. Pridėti naują turinį prie esamo failo:

    echo "This is new content" >> newfile.txt
    
  5. Patikrinkite failo turinį:

    cat newfile.txt
    

    Išvestis:

    Hi How Are You
    This is new content
    

Katalogų apsauga rekursyviai

Naudokite -R vėliava su +i norėdami rekursyviai apsaugoti katalogą ir jo pakatalogius.

  1. Sukurkite katalogus ir pakatalogius:

    mkdir -p test/dir1/dir2
    mkdir -p test/dir3/dir4
    mkdir -p test/dir5/dir6
    
  2. Apsaugokite test katalogas ir visi pakatalogiai:

    chattr -R +i test
    
  3. Pabandykite ištrinti test katalogas su visais pakatalogiais:

    rm -rf test/
    

    Klaida:

    rm: cannot remove ‘test/dir1/dir2’: Permission denied
    rm: cannot remove ‘test/dir5/dir6’: Permission denied
    rm: cannot remove ‘test/dir3/dir4’: Permission denied
    
  4. Iš naujo nustatykite atributą iš test katalogas:

    chattr -R -i test
    
  5. Dabar galite ištrinti test katalogas su visais pakatalogiais.

Išvada

Šiame vadove sužinojote, kaip apsaugoti failus ir katalogus naudojant chattr komandą. Ši komanda yra būtina norint apsaugoti svarbius konfigūracijos failus ir užtikrinti griežtą prieigos kontrolę Linux aplinkoje. The chattr komanda gali padaryti failus nekeičiamus, tik pridėtinius ir dar daugiau, todėl tai yra svarbus įrankis sistemos administratoriams.

The lsattr komanda taip pat yra vertingas failų ir katalogų atributų peržiūros draugas. Veiksmingas šių komandų supratimas ir naudojimas padės apsaugoti „Linux“ sistemas nuo atsitiktinių ar neleistinų pakeitimų.

Jei tekste radote klaidą, siųskite pranešimą autoriui pažymėdami klaidą ir paspausdami Ctrl-Enter.

Norėdami komentuoti, turite būti prisijungę.