Geert Jansen Polskie tłumaczenie: Suse Polska Weryfikacja i uaktualnienie tłumaczenia: Adrian Brosz
2
Spis treści 1 Wprowadzenie 5 2 Używanie KDE su 6 3 Szczegóły implementacji 8 3.1 Uwierzytelnianie X..................................... 8 3.2 Interfejs do su........................................ 8 3.3 Sprawdzanie hasła..................................... 8 3.4 Przechowywanie hasła................................... 9 4 Autor 10
Streszczenie KDE su jest graficzna nakładka dla polecenia Uniksa su.
Rozdział 1 Wprowadzenie Witamy w KDE su! KDE su jest graficzna nakładka KDE dla polecenia Uniksa su. Pozwala ona na uruchamianie programów z uprawnieniami innych użytkowników, po podaniu ich hasła. KDE su jest nieuprzywilejowanym programem, korzysta z polecenia systemowego su. KDE su ma jedna dodatkowa właściwość: może zapamiętywać dla Ciebie hasła. Jeśli używasz tej funkcji, musisz podać hasło tylko raz, dla każdego z uruchamianych poleceń. Zobacz Sekcja 3.4 - tam jest więcej informacji na ten temat i analiza bezpieczeństwa. Ten program jest zaprojektowany tak, by uruchamiać go z linii poleceń lub z plików.desktop. Chociaż prosi o podanie hasła administratora (root) za pomoca okna dialogowego z graficznym interfejsem, jest raczej łacznikiem pomiędzy poleceniem konsoli a graficznym interfejsem użytkownika. 5
Rozdział 2 Używanie KDE su Używanie KDE su jest łatwe. Składnia wyglada następujaco: kdesu [-c] [-d] [-fplik] [-inazwa ikony] [-n] [-ppriorytet] [-r] [-s] [-t] [-uużytkownik] [--n onewdcop] [polecenie [arg1] [arg2] [...]] kdesu [opcje KDE] [opcje Qt] Parametry linii poleceń wyjaśnione sa poniżej. -c program -d -f plik Ten parametr określa program który ma być uruchomiony z uprawnieniami administratora. Musi być on przekazany jako jeden argument. Jeśli więc chcesz uruchomić menedżera plików, wpisujesz w linii poleceń: kdesu -c kfm -sw Nie pokazuj polecenia do uruchomienia w oknie dialogowym. Ta opcja umożliwia wydajne używanie of KDE su w plikach.desktop. Przekazuje ona KDE su polecenie sprawdzenia pliku podanego przez parametr plik. Jeśli plik ten może być zapisany przez bieżacego użytkownika, KDE su wykona polecenie jako ten właśnie użytkownik. Jeśli bieżacy użytkownik nie ma uprawnień do zapisania tego pliku, polecenie jest wykonywane jako użytkownik użytkownik (domyślnie root). plik jest określany w następujacy sposób: jeśli PLIK zaczyna się od /, jest uznawany za absolutna nazwę pliku. W przeciwnym wypadku, przyjmuje się, że jest nazwa jednego z globalnych plików konfiguracyjnych KDE. Na przykład, aby skonfigurować menedżer logowania KDE, kdm, możesz użyć polecenia kdesu -c kdmconfig -f kdmrc -i nazwa ikony Określa ikonę, która zostanie użyta w oknie dialogowym wprowadzania hasła. Można podać tylko nazwę, bez rozszerzenia. Na przykład, aby uruchomić kfmclient i pokazać ikonę Konquerora w oknie dialogowym wpisywania hasła: kdesu -i konqueror kfmclient -n Nie przechowuj hasła. Opcja wyłacza pole wyboru Zapamiętaj hasło w oknie dialogowym wpisywania hasła. 6
-p priorytet -r -s -t Ustawia wartość priorytetu procesu. Priorytet jest dowolna wartościa między 0 a 100, gdzie 100 oznacza najwyższy, natomiast 0 najniższy priorytet. Domyślna wartość to 50. Uruchamia polecenie z priorytetem czasu rzeczywistego. Zatrzymuje demona kdesu. Patrz Sekcja 3.4. Włacza wyjście na terminal. Opcja ta wyłacza przechowywanie hasła. Głównym zastosowaniem powyższego jest znajdowanie błędów (debugowanie) jeśli chcesz uruchamiać programy konsoli, użyj lepiej zwykłego polecenia su zamiast KDE su. -u użytkownik Mimo, że najczęstszym zastosowaniem dla KDE su jest uruchamianie polecenia jako administrator, możesz podać dowolna nazwę użytkownika i odpowiednie dla niego hasło. 7
Rozdział 3 Szczegóły implementacji 3.1 Uwierzytelnianie X Program, który uruchamiasz, będzie działał z identyfikatorem użytkownika root i przez to w zasadzie nie będzie miał dostępu do Twojego ekranu X-ów. KDE su omija ten problem poprzez dodawanie ciasteczka identyfikujacego dla Twojego ekranu do pliku tymczasowego.xauthorit y. Po zakończeniu działania polecenia, plik ten jest usuwany. Jeśli nie używasz ciasteczek X, jesteś zdany na siebie. KDE su wykryje to ustawienie i nie doda ciasteczka, ale będziesz musiał się upewnić, że użytkownik root ma dostęp do Twojego ekranu. 3.2 Interfejs do su KDE su używa polecenia systemowego su do zmiany uprawnień. W tej części wyjaśnione zostana szczegóły, jak KDE su to robi. Ponieważ niektóre implementacje polecenia su (na przykład Red Hat ) nie czytaja hasła ze standardowego wejścia (stdin), KDE su tworzy parę pty/tty, a następnie wykonuje su ze standardowymi deskryptorami plików podłaczonymi do tego tty. Aby uruchomić polecenie przekazane przez użytkownika, zamiast domyślnie uruchamianej interaktywnej powłoki, KDE su przekazuje polecenie za pomoca opcji -c polecenia su. Ten argument jest rozumiany przez każda znana mi powłokę, więc powinno to działać w każdym przypadku. Polecenie su przekazuje argument -c do uruchomionej powłoki i powłoka uruchamia wskazany program. Przykładowe polecenie: su root -c program. Zamiast uruchamiania polecenia użytkownika bezpośrednio poprzez polecenie su, KDE su uruchamia mały program pośredniczacy o nazwie kdesu_stub. Ten program (działajacy jako użytkownik docelowy), pobiera niektóre informacje z KDE su poprzez połaczenie pty/tty (podła- czone do standardowego wejścia i wyjścia) i wówczas uruchamia program użytkownika. Przekazywane sa: nazwa ekranu X, ciasteczko uwierzytelniajace X (jeśli jest dostępne), zawartość zmiennej PATH i polecenie do uruchomienia. Powodem, dla którego użyty jest program pośredniczacy jest to, że ciasteczko X jest prywatna informacja i nie może być przekazywane w linii polecenia. 3.3 Sprawdzanie hasła KDE su sprawdza hasło, które zostało podane i wyświetli komunikat o błędzie, jeśli nie będzie ono poprawne. Sprawdzanie dokonywane jest poprzez uruchomienie prostego programu /bin/ true. Jeśli sprawdzenie się powiedzie, hasło uznawane jest za poprawne. 8
3.4 Przechowywanie hasła Dla twojej wygody, KDE su posiada opcję «przechowywania haseł». Jeśli interesuja Cię kwestie bezpieczeństwa, powinieneś przeczytać tę część. Pozwalajac KDE su na zapamiętywanie haseł, otwierasz (mała) lukę w bezpieczeństwie systemu. Oczywiście, KDE su nie pozwala komukolwiek innemu poza Toba na używanie hasła, ale jeśli zostanie to zrobione nieuważnie może obniżyć poziom bezpieczeństwa administratora (użytkownika root) do tego, jaki ma zwykły użytkownik (Ty). Haker, który włamie się na Twoje konto, może zdobyć uprawnienia administratora. KDE su próbuje temu zapobiec. Zabezpieczenia jakich używa sa, moim zdaniem, wystarczajace i sa objaśnione poniżej. KDE su używa demona, nazwanego kdesud. Demon nasłuchuje na gnieździe Uniksa w katalogu /tmp, oczekujac na polecenia. Tryb (uprawnienia) gniazda to 0600 więc tylko Ty jako posiadacz odpowiedniego identyfikatora użytkownika możesz się połaczyć. Jeśli właczone jest przechowywanie haseł, KDE su wykonuje polecenie poprzez tego demona. Zapisuje polecenie i hasło administratora do gniazda, a następnie demon wykonuje polecenie za pomoca su, jak wyjaśniono wcześniej. Później, polecenie i hasło nie sa zapominane, zamiast tego sa one przechowywane przez określony przedział czasu. Przedział czasu można określić w module Centrum sterowania KDE. Jeśli pojawi się następne żadanie wykonania tego samego polecenia w tym przedziale czasu, nie będzie konieczne powtórne podanie hasła. Aby uchronić demona przed kradzieża haseł przez włamywaczy (na przykład poprzez dołaczenie debuggera), demon jest uruchamiany ze zmiana grupy (SGID) na nogroup. To powinno zabezpieczyć przed uzyskaniem hasła z procesu kdesud przez wszystkich zwykłych użytkowników (wliczajac Ciebie). Dodatkowo demon ustawia zmienna środowiskowa DISPLAY na wartość która miała przy uruchomieniu. Jedyna rzecza która może zrobić wówczas włamywacz jest uruchomienie programu na Twoim ekranie. Jedynym słabym punktem tego schematu jest to, że programy jakie uruchamiasz prawdopodobnie nie sa pisane z myśla o bezpieczeństwie (czyli do wykonania z uprawnieniami administratora za pomoca SUID). Oznacza to że moga one zawierać błędy przepełnienia bufora lub inne problemy, które moga wykorzystać hakerzy. Korzystanie z opcji zapamiętywania haseł jest kompromisem pomiędzy bezpieczeństwem i wygoda. Samemu trzeba zdecydować, co się wybiera, majac świadomość ryzyka. 9
Rozdział 4 Autor KDE su Prawa autorskie (c) 2000 Geert Jansen Autorem KDE su jest Geert Jansen. Jest w części oparty na KDE su w wersji 0.3 autorstwa Pietro Iglio. Pietro i ja ustaliliśmy, że dalej ja będę się opiekował programem. Z autorem można skontaktować się pod adresem e-mailowym g.t.jansen@stud.tue.nl. Proszę o informacje na temat wszelkich niedociagnięć, abym mógł je naprawić. Jeśli masz jakieś sugestie, skontaktuj się ze mna. Suse Polskasuse@suse.pl Adrian Broszadriian@wp.pl Ten program jest rozprowadzany na zasadach Licencji GNU Free Documentation License. Ten program jest rozprowadzany na zasadach Licencji Artystycznej. 10