Tradycyjną kontrolę dostępu w systemie Unix uzupełnia system podstawiania tożsamości, który realizowany jest przy współpracy jądra i systemu plików. Mechanizm ten umożliwia uruchamianie specjalnie przygotowanych plików wykonywalnych z podwyższonymi uprawnieniami, zwykle takimi, jakie ma użytkownik root. Umożliwia też programistom i administratorom tworzenie zorganizowanych sposobów wykonywania uprzywilejowanych operacji przez nieuprzywilejowanych użytkowników.

Kiedy jądro uruchamia plik wykonywalny z ustawionym atrybutem setuid lub setgid, zmienia efektywny identyfikator UID lub GID jego procesów wynikowych na identyfikator UID lub GID pliku zawierającego kod programu, a nie na identyfikator UID i GID użytkownika, który wydal polecenie. W ten sposób uprawnienia użytkownika są podwyższane tylko przy wykonywaniu tego określonego polecenia. Oto przykład: użytkownicy muszą mieć możliwość zmiany swoich haseł. Ponieważ jednak hasła (tradycyjnie) przechowywane są w chronionym pliku /etc/master.passwd lub /etc/shadow, użytkownicy muszą uruchamiać polecenie passwd z atrybutem setuid, aby uzyskać do niego dostęp. Polecenie passwd sprawdza, kto je uruchomił, i odpowiednio dostosowuje swoje zachowanie: zwykli użytkownicy mogą zmieniać tylko własne hasła, ale użytkownik root może zmienić dowolne hasło.

Programy z atrybutem setuid, zwłaszcza te, które ustawiają identyfikator użytkownika root, mogą stwarzać problemy związane z bezpieczeństwem. Polecenia z atrybutem setuid rozprowadzane wraz z systemem są teoretycznie bezpieczne; w przeszłości odkrywano jednak luki bezpieczeństwa i niewątpliwie w przyszłości będą odkrywane kolejne.

Najpewniejszym sposobem zminimalizowania liczby problemów związanych z atrybutem setuid jest zmniejszenie liczby programów, które z niego korzystają. Zastanów się dwa razy, zanim zainstalujesz oprogramowanie, które musi korzystać z setuid, i unikaj stosowania tej funkcji w swoich programach. Nigdy nie uruchamiaj przez setuid programów, które nie zostały napisane wyraźnie z myślą o takim sposobie działania.

Możesz wyłączyć działanie setuid i setgid na poszczególnych systemach plików, podając w poleceniu mount opcję nosuid. Warto używać tej opcji na tych systemach plików, które zawierają katalogi domowe użytkowników lub są montowane z mniej godnych zaufania domen dministracyjnych.

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.