Porady Admina: chcon
Ostatnia aktualizacja: 15 marca 2025, 12:20
Dzisiejszy wpis z serii Porady Admina postanowiłem poświęcić poleceniu chcon.
Polecenie chcon w systemie Linux służy do zmiany kontekstu zabezpieczeń pliku lub katalogu. Jest to szczególnie przydatne podczas pracy z systemem SELinux (Security-Enhanced Linux), w którym pliki i katalogi są oznaczane kontekstami zabezpieczeń, które definiują ich kontrole dostępu.
chcon jest częścią coreutils.
Składnia
chcon [OPCJA]... KONTEKST PLIK...
lub:
chcon [OPCJA]... [-u UŻYTKOWNIK] [-r ROLA] [-l ZAKRES] [-t TYP] PLIK...
lub:
chcon [OPCJA]... --reference=PLIK_WZ PLIK...
Opcje
Argumenty obowiązkowe dla opcji długich obowiązują również dla krótkich.
–dereference : zmiany mają dotyczyć obiektów wskazywanych przez dowiązania symboliczne (zachowanie domyślne), a nie samych dowiązań
-h, –no-dereference : zmiany mają dotyczyć samych dowiązań symbolicznych, a nie plików przez nie wskazywanych
-u, –user=UŻYTKOWNIK : ustawienie UŻYTKOWNIKA w docelowym kontekście bezpieczeństwa
-r, –role=ROLA : ustawienie ROLI w docelowym kontekście bezpieczeństwa
-t, –type=TYP : ustawienie TYPU w docelowym kontekście bezpieczeństwa
-l, –range=ZAKRES : ustawienie ZAKRESU w docelowym kontekście bezpieczeństwa
–no-preserve-root : bez traktowania katalogu „/” w specjalny sposób (domyślnie)
–preserve-root : odmowa rekursywnego działania na „/”
–reference=PLIK_WZ : użycie kontekstu bezpieczeństwa pliku PLIK_WZ zamiast podanego KONTEKSTU
-R, –recursive : zmiany też w plikach, w podkatalogach
-v, –verbose : wypisanie informacji o każdym przetwarzanym pliku
Następujące opcje zmieniają sposób przeglądania katalogów, gdy jest podana
opcja -R. Jeżeli podane jest więcej opcji, używana jest tylko ostatnia.
-H : jeżeli argumentem jest dowiązanie symboliczne do katalogu – będzie przetworzony
-L : przetworzenie każdego katalogu, do którego jest dowiązanie symboliczne
-P : bez przetwarzania dowiązań symbolicznych (domyślnie)
Przykłady
Zmiana kontekstu pojedynczego pliku o nazwie plik1.txt z kontekstem user_u:object_r:user_home_t na system_u:object_r:httpd_sys_content_t
chcon system_u:object_r:httpd_sys_content_t plik1.txt
Rekurencyjna zmiana kontekstu wszystkich plików w katalogu dir1 i podkatalogach, aby miały kontekst httpd_sys_content_t
chcon -R system_u:object_r:httpd_sys_content_t dir1
Aby wyświetlić bieżący kontekst zabezpieczeń pliku, możesz użyć ls
ls -lZ
Aby zmienić pełny kontekst pliku, należy użyć:
chcon user:role:type:level plik1.txt
Więcej informacji o poleceniu chcon uzyskasz wpisując:
chcon --help
man chcon