RedHat 6.x / Centos 6.x
Rozszerzone atrybuty plików pozwalają na ograniczenie dostępu do plików, ale również na zdefiniowanie pewnych zachowań filesystemu w odniesieniu do konkretnego pliku.
Kilka z atrybutów może być przydatnych na codzień do uszczelniania naszego systemu.
Weryfikacja atrybutów pliku
Do weryfikacji atrybutów używać będziemy polecenia lsattr:
[root@centos67 ~]# lsattr /etc/passwd
-------------e- /etc/passwd
-------------e- /etc/passwd
Jak widać powyżej plik /etc/passwd domyślnie posiada jedynie atrybut e, i jest to stan większości plików w systemie. Oznacza to, że plik używa extentów do mapowania bloków dyskowych, i jest to atrybut, którego nie zmienimy poleceniem chattr
Zmiana atrybutów pliku
Do najprzydatniejszych w codziennej administracji atrybutów możemy zaliczyć:* a - ustawienie go spowoduje, iż plik może zostać otwarty do zapisy jedynie w trybie append - będzie możliwe dopisanie do niego treści, ale nie możliwe będzie usunięcie treści poprzedniej, nadpisanie pliku czy jego usunięcie.
* D - powoduje wymuszenie synchronicznego zapisywania pliku na dysk - może to być przydatne w przypadku plików, których zawartość jest bardzo istotna (np. bazy danych)
* i - tzw. tryb immutable - zablokuje możliwość dokonywania jakichkolwiek zmian w pliku. Nie będziemy mogli go usunąć, nadpisać, przenieść, czy dopisać do niego zawartości. Blokuje również możliwość tworzenia linków do pliku - opcja bardzo przydatna do plików, dla których chcemy mieć pewność, że nie zostaną przypadkowo, lub celowo zmienione (np. klucze prywatne rsa, itp)
* s - gwarantuje nam, że w przypadku usunięcia pliku, bloki przez niego zajmowane zostaną fizycznie wyzerowane, co uniemożliwi odzyskanie pliku jakimikolwiek metodami. Ten atrybut nie działa póki co dla filesystemów typu ext2 i ext3.
* u - usunięcie pliku z tym atrybutem spowoduje zachowanie jego zawartości na dysku, i umożliwi ewentualne jego odzyskanie.
Atrybuty dla plików możemy zmienić poprzez ich dodanie lub odjęcie komendą:
[root@centos67 ~]# chattr +i test.txt
[root@centos67 ~]# lsattr test.txt
----i--------e- test.txt
[root@centos67 ~]# lsattr test.txt
----i--------e- test.txt
Użycie + przy atrybucie dodało go do pliku. Sprawdźmy teraz jego działanie:
[root@centos67 ~]# ll test.txt
-rw-r--r--. 1 root root 0 Sep 9 11:59 test.txt
[root@centos67 ~]# rm -f test.txt
rm: cannot remove `test.txt': Operation not permitted
-rw-r--r--. 1 root root 0 Sep 9 11:59 test.txt
[root@centos67 ~]# rm -f test.txt
rm: cannot remove `test.txt': Operation not permitted
Jak widać, pomimo, że plik ma ustawioną flagę zapisu, i pomimo faktu, że operacja wykonywana jest z konta root, system nie dopuszcza do usunięcia pliku.
Analogicznie do dodawania, do usunięcia użyjemy znaku - przed atrybutem:
[root@centos67 ~]# chattr -i test.txt
[root@centos67 ~]# lsattr test.txt
-------------e- test.txt
[root@centos67 ~]# lsattr test.txt
-------------e- test.txt
Pełna lista atrybutów wraz z ich opisem dostępna jest w manualu dla chattr
Brak komentarzy:
Prześlij komentarz