Příkaz chattr se používá ke změně atributů souboru nebo adresáře. Následující tabulka popisuje některé možnosti příkazu chattr.
Možnost | Popis |
---|---|
-R | Rekurzivně měnit atributy adresářů a jejich obsah. |
-v {version} | Nastavte číslo verze souboru. |
+i | Označte soubor jako pouze pro čtení nebo jako neměnný. Vyžaduje oprávnění superuživatele. |
-i | Odeberte atribut pouze pro čtení nebo neměnný atribut souboru. Vyžaduje oprávnění superuživatele. |
Syntaxe příkazu chattr je:
# chattr [-R] [-v {version}] [+-{attributes}] {file/directory names}
Pokud při spouštění příkazu chattr narazíte na níže uvedenou chybu:
chattr: command not found
můžete nainstalovat níže uvedený balíček podle vaší volby distribuce:
Distribuce | Příkaz |
---|---|
OS X | brew install e2fsprogs |
Debian | apt-get install e2fsprogs |
Ubuntu | apt-get install e2fsprogs |
Alpine | apk přidat e2fsprogs |
Arch Linux | pacman -S e2fsprogs |
Kali Linux | apt-get install e2fsprogs |
CentOS | mňam nainstalovat e2fsprogs |
Fedora | dnf install e2fsprogs |
Raspbian | apt-get install e2fsprogs |
Odstranění atributu -i (neměnný) ze souborů
Pro odstranění atributu „i“ použijte níže uvedený příkaz.
# chattr -i geek.txt # Unset "i" attribute
Po odebrání atributu uvidíte, že sekce oprávnění bude prázdná.
# lsattr geek.txt --------------- geek.txt
Změna adresáře pomocí chattr
Nyní se pokusíme zabezpečit adresář rekurzivní změnou jeho atributu pomocí příkazu chattr. Zde mám adresář s názvem data a každý má k tomuto adresáři rekurzivně plný přístup. Viz ukázkový výstup níže.
# mkdir data # chmod -R 777 data/ # ls -l total 4 drwxrwxrwx. 2 root root 4096 Apr 24 04:25 data
Nyní nastavte atribut tomuto adresáři.
# chattr +i data/ # lsattr ----i--------e- ./data
Můžete také nastavit atribut Rekurzivně pomocí volby -R s chattr.
# chattr -R +i data/
Po nastavení atributu na adresář se nyní pokuste smazat, přesunout nebo vytvořit soubor, jsem si jistý, že vám nic z toho nebude povoleno. Viz ukázkový výstup níže.
# rmdir data/ # Deleting the Directory rmdir: failed to remove `data/': Operation not permitted
# rm -rf data/ # Deletiing the Directory Forcefully rm: cannot remove `data': Operation not permitted
# mv data/ mydata # Moving the Directory mv: cannot move `data/' to `mydata': Operation not permitted
# cd data/ # cat > test.txt # Creating a File in the directory bash: test.txt: Permission denied