Meestal wordt een Linux computer door verschillende gebruikers gebruikt. Daarbij hebben ze toegang tot gemeenschappelijke bestanden. Dit kan voor problemen zorgen door het per ongeluk wissen of aanpassen van belangrijke bestanden. En dit wil je als beheerder voorkomen. Gelukkig kunnen we gebruik maken van de chattr opdracht.
Met de chattr opdracht kan je de eigenschappen van een bestand naar wens aanpassen.
Hieronder de beschrijving van de man pagina:
Eerst maken we een testbestand aan. Daarna beperken we de toegang tot alleen lezen.
dany@main:~>touch test.txt
dany@main:~>ls -alrt test.txt
-rw-r--r-- 1 dany users 0 8 feb 11:45 test.txt dany@main:~>sudo chattr +i test.txt
[sudo] wachtwoord voor root: dany@main:~>echo "Hallo" > test.txt
bash: test.txt: Actie is niet toegestaan dany@main:~>rm test.txt
rm: kan 'test.txt' niet verwijderen: Actie is niet toegestaan
Merk op dat je root rechten nodig hebt om de bestandseigenschappen met chattr aan te passen.
Om een bestand terug schrijfrechten te geven, gebruik je de -i optie:
dany@main:~>sudo chattr -i test.txt
[sudo] wachtwoord voor root: dany@main:~>echo "Hallo" > test.txt
dany@main:~>rm test.txt
Soms wil je niet alle schrijftoegang tot een bestand blokkeren, maar is het toegestaan gegevens toe te voegen. Dit kan met de +a optie:
dany@main:~>touch test.txt
dany@main:~>sudo chattr +a test.txt
[sudo] wachtwoord voor root: dany@main:~>echo "Hallo" >> test.txt
dany@main:~>echo "Hey" > test.txt
bash: test.txt: Actie is niet toegestaan dany@main:~>rm test.txt
rm: kan 'test.txt' niet verwijderen: Actie is niet toegestaan
Toevoegen is dus mogelijk, aanpassen en verwijderen niet. Het bestand geef je terug de normale schrijfrechten met de opdracht:
dany@main:~> sudo chattr -a test.txt
Dit kan met de -R optie (Recursief) die eigenschap van de map en zijn inhoud aanpast. Om alle bestanden in de testmap alleen lezen te maken, gebruik je:
dany@main:~>mkdir testmap
dany@main:~>for bestand in test1.txt test2.txt test3.txt ; do cp test.txt testmap/"$bestand" ; done
dany@main:~>rm test.txt
dany@main:~>sudo chattr -R +i ./testmap/
[sudo] wachtwoord voor root: dany@main:~>cd testmap/
dany@main:~/testmap>ls -lrt
totaal 12 -rw-r--r-- 1 dany users 6 8 feb 13:56 test1.txt -rw-r--r-- 1 dany users 6 8 feb 13:56 test2.txt -rw-r--r-- 1 dany users 6 8 feb 13:56 test3.txt dany@main:~/testmap>rm test*
rm: kan 'test1.txt' niet verwijderen: Actie is niet toegestaan rm: kan 'test2.txt' niet verwijderen: Actie is niet toegestaan rm: kan 'test3.txt' niet verwijderen: Actie is niet toegestaan
Tot nu hebben we de aangepaste bestandseigenschappen getest door er bewerkingen op uit te voeren. Maar je kan met de opdracht lsattr ook eerst de eigenschappen van bestanden opvragen:
dany@main:~/testmap>lsattr
----i---------e---- ./test3.txt ----i---------e---- ./test2.txt ----i---------e---- ./test1.txt dany@main:~/testmap>sudo chattr -R -i ../testmap/
[sudo] wachtwoord voor root: dany@main:~/testmap>lsattr
--------------e---- ./test3.txt --------------e---- ./test2.txt --------------e---- ./test1.txt
De alleen lezen eigenschap werd verwijderd. Ruim op met de volgende opdrachten:
dany@main:~/testmap>cd
dany@main:~>rm -R testmap/
Met chattr kan je bestandseigenschappen haarfijn en naar wens aanpassen. Een goed uitgedokterd gebruik is een verzekering tegen gebruikelijke ongelukken. Om de uitgebreide mogelijkheden te ontdekken, raadpleeg je best de man pagina van zowel chattr als het gebruikte bestandssysteem. Want het bestandssysteem moet de door chattr ingestelde eigenschappen wel ondersteunen.