Root 101

Jeśli nie możesz go “dostać”, prawdopodobnie go nie miałeś

David Baker

tłumaczenie Bartosz Feński aka fEnIo

Dla wielu, którzy są przyzwyczajeni do systemów o dostępie jednoużytkownikowym, jak Windows 98 czy Mac OS 9, idea administratora (root'a) jest czymś zupełnie nieznanym. Artykuł ten ma na celu wytłumaczyć czym jest administrator, kiedy potrzebne są jego uprawnienia, do czego służą oraz jak je można zdobyć.

Oczywiście w zgodzie z technicznymi terminologiami istnieją dwie zupełnie różne definicje pojęcia root. Oto wyjaśnienie jednej z nich:

root (korzeń) (1): w systemach plików pojęcie opisujące główny (najwyższy w hierarchii) katalog napędu lub wolumenu.

Na przykład: plik znajdujący się w głównym (root) katalogu komputera pracującego pod kontrolą systemu Windows posiada ścieżkę dostępu typu c:\MójPlik.doc. Plik znajdujący się w głównym katalogu komputera pracującego pod kontrolą systemu Mac OS 9 będzie miał ścieżkę dostępu Macintosh HD:Mój Plik. Natomiast plik z głównego katalogu komputera pracującego pod kontrolą systemu opartego na Unix (włączając Mac OS X) będzie miał ścieżkę dostępu /mójplik.txt. Zauważ, że w systemie Unix, pierwszy ukośnik (/) w ścieżce dostępu oznacza główny (root) katalog, określany również jako najwyżej położony w hierarchii katalog na tym napędzie lub wolumenie.

Najciekawsze, że powyższe wywody nie są bezpośrednio związane z tematem artykułu. Mowa będzie o innym znaczeniu terminu root:

root (administrator) (2) lub root access (uprawnienia administratora): uprawnienia w systemach operacyjnych bazujących na Unix pozwalające użytkownikowi na dokonywanie zmian mających wpływ na pracę systemu. To oznacza również możliwość otwierania i modyfikacji plików, które są niedostępne dla zwykłych użytkowników, zwłaszcza pliki systemowe oraz pliki z katalogów domowych pozostałych użytkowników.

To prowadzi nas do kolejnej ważnej definicji:

super użytkownik: użytkownik mający uprawnienia administratora.

No wszystko pięknie, fajnie, ale to dalej nie wyjaśnia czym tak naprawdę są uprawnienia administratora. Najprościej ujmując wszystko sprowadza się do uprawnień logowania. W systemach Uniksowych, dostęp i uprawnienia są powiązane z logowaniem użytkownika, które jest realizowane przy pomocy nazwy użytkownika oraz hasła.

Kiedy użytkownik loguje się do komputera pracującego pod kontrolą jednego z wielu systemów typu Unix, jest proszony o podanie nazwy użytkownika oraz hasła. System sprawdza w swojej bazie użytkowników czy hasło i nazwa zgadzają się. Jeśli użytkownik zaloguje się używając nazwy root, oraz hasła administratora, otrzyma uprawnienia pozwalające robić wiele rzeczy, których nie mogą zwykli użytkownicy.

Poniżej tylko kilka przykładów operacji, których wykonanie wymaga uprawnień administratora:

Wiele z tych przykładów to czynności, które użytkownicy zwykli byli wykonywać pracując w systemach o dostępie jednoużytkownikowym. Co więcej tacy użytkownicy mogą wręcz czuć się zobligowani do wykonywania takich operacji. Jednakże, w systemie wieloużytkownikowym. sprzętowa i programowa konfiguracja musi być ściśle kontrolowana ponieważ ma wpływ na wielu ludzi. Zmiany dokonane z uprawnieniami administratora mogą potencjalnie spowodować katastroficzne efekty, które będą dotykać wszystkich użytkowników systemu. Jak nas nauczył film “Spiderman” wraz z większą mocą przychodzi większa odpowiedzialność. Oto krótkie porównanie, które powinno bardziej rozjaśnić tę koncepcję.


A house Rozważmy sytuację w której pan Heniek jest właścicielem piętrowego domku na ćwierć akrowej działce w Pcimiu Dolnym. Ponieważ pan Heniek ma klucze od drzwi frontowych, ma również dostęp do każdego miejsca w domu, od piwnicy przez kuchnię, sypialnię, aż po poddasze. On -- oraz bank -- są właścicielami całego domu więc mogą robić co im się żywnie podoba.

Jeśli pan Heniek chce może sobie zainstalować nową toaletę z turbo-spłukiwaczką albo przebudować garaż w studio nagraniowe. Może również przerobić krany w kuchnii i łazience na kontakty elektryczne lub rozwalić wielkim młotem bojler w piwnicy. Pomijając sensowność dwóch ostatnich innowacji faktem pozostaje, iż pan Heniek może to zrobić.



Apartments A teraz dla kontrastu wyobraźmy sobie, że pan Heniek jest właścicielem bloku mieszkalnego na nowym osiedlu w Wąchocku. Pan Józef wynajmuje mieszkanie (pokój, kuchnia, sypialnia, łazienka). Pan Józef może dostać się do swojego mieszkania, które jest zabezpieczone przed obcymi dzięki dzwiom zamykanym na cztery spusty i łańcuch. W dodatku pan Józef ma dostęp do korytarzy, klatki schodowej, pralni, suszarni i skrzynki na listy.

Ani pan Józef ani żaden z sąsiadów nie mają prawa wejść do innego niż ich mieszkania. W dodatku mają zakazany dostęp do pomieszczenia z bojlerem, pomieszczeń gospodarczych oraz transformatora. Jedyną osobą mającą klucze do wszystkich pomieszczeń jest administrator (lub super użytkownik). Może on kontrolować media (takie jak woda czy prąd), zatwierdzać przeróbki w budynku czy nawet wchodzić do mieszkań innych lokatorów.



Używanie systemu o dostępie jednoużytkownikowym takim jak Windows 98 lub Mac OS 9 jest jak mieszkanie w jednorodzinnym domu. Relacje między panem Heniem a domem można porównać do relacji użytkownika z jego systemem. Użytkownik Windows 98 może podmieniać biblioteki (DLL), modyfikować rejestr systemu, wymazywać pliki .INI wedle uznania. Użytkownik Mac OS 9 może grzebać w rozszerzeniach, używać ResEdit by zmienić ustawienia systemu.

Innymi słowy użytkownik systemu Windows 98 lub Mac OS 9 ma możliwość totalnego spieprzenia swojego systemu. Wszelkie pliki, które są krytyczne dla prawidłowego funkcjonowania jego komputera są dla niego dostępne i podatne na uszkodzenia majsterkowiczów. Jeśli taki użytkownik wie co robi może dostroić działanie swojego komputera. Jeśli jednak nie wie, może zamienić swoją maszynę w bardzo drogi złom.

Dla odmiany systemy typu Unix zaprojektowane są dla wielu użytkowników. Dokładnie tak jak blok mieszkalny -- wielu ludzi może korzystać z systemu w tym samym czasie. Z tego powodu tylko jedna osoba -- lub kilka wybranych osób -- mają uprawnienia do dokonywania zmian mających wpływ na cały system. W momencie gdy lokator może wyłączyć światło w swoim pokoju, super użytkownik może wyłączyć prąd w całym bloku. Oczywiście muszą być ku temu racjonalne powody. Super użytkownicy odpowiednio używając uprawnień administratora, mogą utrzymywać “komputery mieszkalne” w dobrej formie.

Jeśli system typu Unix jest dla Ciebie czymś nowym, są duże szanse, że masz więcej pytań na temat administratora. Na szczęście odpowiedzi znajdziesz poniżej.

>> Jak mogę się dowiedzieć czy mam uprawnienia administratora?

Jak sugeruje tytuł artykułu, jeśli nie wiesz czy masz uprawnienia administratora, to prawdopodobnie ich nie masz. Jednakże, jest możliwe byś był zalogowany jako administrator bez wiedzy o tym. Są trzy różne sposoby by to sprawdzić. Najprostszym sposobem jest spojrzenie na swój znak zachęty. Zazwyczaj znak zachęty zawiera aktualną nazwę użytkownika. Jeśli więc jesteś zalogowany jako administrator (root), powinieneś zobaczyć na ekranie coś takiego:

[root@mojamaszyna /]#

W tym przykładzie jesteśmy zalogowani jako administrator i pracujemy w głównym katalogu systemu (informuje nas o tym “/” w znaku zachęty).

Jeśli to wygląda zbyt prosto, to możesz wykorzystać specjalne polecenia, które powiedzą czy jesteś zalogowany jako administrator. Widząc znak zachęty można wpisać:

[root@mojamaszyna /]# whoami
root

Zauważ, że system zwrócił root, który jest aktualną nazwą użytkownika. Jeśli nie jesteś zalogowany jako root, system powinien zwrócić zwykłą nazwę użytkownika (id).

Innym sposobem na przekonanie się jako kto jesteśmy zalogowani jest wpisanie następującego polecenia:

id

System zwróci nazwę użytkownika, grupy oraz listę wszystkich grup do których użytkownik przynależy. Jeśli jesteś zalogowany jako root identyfikator użytkownika (id) będzie równy 0 (są pewne wyjątki od tej reguły, ale w większości przypadków będzie właśnie tak).

>> Jak mogę otrzymać uprawnienia administratora?

Jeśli pracujesz w systemie wieloużytkownikowym i chcesz otrzymać uprawnienia administratora musisz porozmawiać z administratorem. Jeśli jest podobny do większości administratorów, to będziesz potrzebował naprawdę dobrego powodu by je otrzymać. Jeśli nie będziesz w stanie usprawiedliwić tej potrzeby wystarczająco to prawdopodobnie nie otrzymasz takich uprawnień. Jeśli jednak argumentacja będzie rozsądna, a w dodatku złożysz odpowiednią daninę w formie czekolady, napojów kofeinowych, wielkiej torby cheeps'ów, a planety będą we właściwym ułożeniu, możliwe, że otrzymasz hasło administratora.

Z drugiej strony jeśli pracujesz na maszynie, której jesteś właścicielem powinieneś już mieć uprawnienia administratora. Jeśli jesteś absolutnie pewien, że powinieneś mieć te uprawnienia, a nie znasz hasła, to masz problem. Zobacz ostatnie pytanie tego artykułu by uzyskać więcej informacji na temat rozwiązania tej niekorzystnej sytuacji.

>> Mam dostęp, jak się zalogować jako administrator?

Jeśli posiadasz hasło administratora, musisz się zalogować by otrzymać jego uprawnienia. Ta część jest całkiem prosta. Podczas logowania zrób to co poniżej:

login: root
root@mojamaszyna's password: [wpisz tutaj swoje hasło]

Jeśli hasło jest prawidłowe, system powinien wpuścić Cię z "boskimi" uprawnieniami.

Drugi scenariusz logowania ma miejsce wtedy jeśli jesteś już zalogowany jako zwykły użytkownik i chcesz zdobyć uprawnienia administratora. Jeśli taka sytuacja nastąpi wpisz co następuje w linii poleceń:

su

Pewnie myślisz, że jest to skrót od “super użytkownik”, ale jesteś w błędzie. Skrót pochodzi od “switch user (zmień użytkownika)” i może być użyty do zalogowania się jako ktokolwiek inny, pod warunkiem, że znasz odpowiednie hasło. Na przykład, jeśli chcesz zalogować się jako Twój kumpel Stefan, możesz użyć polecenia su stefan, wpisać jego hasło i robić co zechcesz używając jego identyfikatora. Możesz zrobić mu dowcip i użyć polecenia passwd by zmienić mu hasło. Nie żebyś powinien to robić, ale może to być zabawne. (Zauważ, że Stefan może nie zgodzić się z poprzednim stwierdzeniem.)

Jeśli użyjesz polecenia su bez określania użytkownika, system przyjmie, że chcesz się przełączyć na administratora i zapyta Cię o jego hasło. Jeśli je znasz i wpiszesz je prawidłowo, zostaniesz zalogowany jako administrator.

Interesującą rzeczą dotyczącą su jest to, że otrzymujesz uprawnienia administratora wraz ze swoimi osobistymi ustawieniami środowiska. Oznacza to, że prawdopodobnie ujrzysz znak zachęty podobny do takiego:

[root@mojamaszyna mojanazwa]$

Jeśli przykładowo sprawdzisz swoją ścieżkę przeszukiwania, zobaczysz, że się nie zmieniła. Oto przykład co możesz zobaczyć:

[mojanazwa@mojamaszyna mojanazwa]$ su
Password:
[root@machinename mojanazwa]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/myname/bin
[root@mojamaszyna mojanazwa]

To dość uproszczona ścieżka przeszukiwania $PATH. Jeśli naprawdę chcesz otrzymać wypasioną wersję użyj su -. (Po su następuje spacja, a potem myślnik):

[mojanazwa@mojamaszyna mojanazwa]$ su -
Password:
[root@mojamaszyna /root]$ echo $PATH
  /usr/local/sbin:/usr/sbin:/sbin:/bin:
  /usr/bin:/usr/local/bin:/usr/local/sbin:
  /usr/bin/X11:/usr/X11R6/bin:/root/bin
[root@mojamaszyna /root]

Jak widać zmienna $PATH jest znacznie bardziej szczegółowa i daje dużo bardziej bezpośredni dostęp do wielu poleceń, skryptów i programów na maszynie. Jeśli skończysz “administrować” to tak możesz wrócić do swojego pierwotnego użytkownika:

exit

Wciśnij ENTER i powinieneś stać się znowu zwykłym starym nie-super sobą.

Jeśli logujesz się do systemu zdalnie i chcesz skorzystać z uprawnień administratora dobrym nawykiem jest najpierw używać nazwy zwykłego użytkownika, a potem użyć su - by przełączyć się na administratora. Logowanie tym sposobem, zamiast bezpośredniego logowania na administratora może zmniejszyć ryzyko włamania.

>> Jak mogę użyć uprawnień administratora bez logowania się jako administrator?

Jedną z najważniejszych rzeczy, które trzeba wiedzieć o uprawnieniach administratora jest fakt, że należy rzadko pozostawać zalogowanym jako administrator przez długi czas. Jeśli jesteś zalogowany jako administrator narażasz swój system. W systemach typu Unix nie ma polecenia “cofnij” więc każdy plik, który usuniesz ginie bezpowrotnie. Jednakże często uprawnienia administratora są potrzebne by wykonać jakieś czynności.

W takich sytuacjach dużo prościej jest “zalogować” się jako administrator tylko dla wykonania jednego polecenia. Można to zrobić małym narzędziem sudo, które jest skrótem od “super user do (robione przez super użytkownika)”. Sudo sprawia, że polecenie które podajemy jako argument będzie wykonane tak jakby zostało wydane przez kogoś, kto jest zalogowany jako super użytkownik. Na przykład jeśli próbujesz edytować plik, którego właścicielem jest administrator, możesz napotkać następujący problem:

$ vi rootplik.txt
bash: vi rootplik.txt: Permission denied

Tylko ktoś kto jest zalogowany jako administrator może edytować pliki do niego należące. W tym momencie możesz za pomocą su stać się administratorem, ale to wymaga później powrotu do zwykłego użytkownika. Zamiast tego możesz zrobić co następuje:

$ sudo vi rootplik.txt

Gdy to wykonasz, system poprosi Cię o podanie hasła. Wprowadź je i wciśnij ENTER. Jeśli administrator upoważnił Cię do tego typu dostępu sudo, zostanie otworzony plik do edycji. Zauważ, że gdy zamkniesz edytor, stajesz się z powrotem zwykłym użytkownikiem bez konieczności użycia polecenia exit.

Pomimo, że sudo staje się standardowym dodatkiem w systemach Linux, to nie jest jeszcze częścią podstawowego zestawu narzędzi. Możesz pobrać sudo z < http://www.sudo.ws/sudo/ >. Podobne narzędzie, o nazwie super możesz znaleźć tu < ftp://ftp.ucolick.org:/pub/users/will/super-3.14.0.tar.gz >.

>> Dlaczego nie mogę po prostu cały czas być zalogowany jako administrator?

Uprawnienia administratora to “wyjątkowa” rzecz. Oczywiście, mógłbyś pracować w systemie będąc zalogowanym jako administrator, to pewnie sprawiałoby, że czułbyś się kimś ważnym. Jednak robiąc tak będziesz głupcem.

Po pierwsze, będąc zalogowanym jako administrator, pracujesz z “kosmicznymi uprawnieniami.” Jeśli nigdy, przenigdy nie popełniłeś pomyłki, możesz próbować tak pracować. Ale jak już wpomnieliśmy wcześniej, jeśli coś spieprzysz to nie ma “cofnij.” Zrobienie literówki podczas pracy jako administrator może uszkodzić cały system. Ciągnąc dalej. To Po Prostu Nie Jest Dobra Rzecz.

Możesz myśleć o su - i poleceniach aministracyjnych jak o “otwartych drzwiach” do systemu. W swoim “bloku mieszkalnym” możesz zostawić otwarte drzwi do pomieszczenia gospodarczego na kilka minut podczas, których wykonujesz czynności administracyjne. Ale jeśli zarządzasz bezpiecznym kompleksem w mieście o kilkumilionowej populacji (jeśli używasz systemu Unix podłączonego do sieci Internet, tak to Ty), z pewnością nie chcesz zostawiać tych drzwi otwartych zbyt długo.

Jeszcze jeden powód dla którego nie chcesz zostawiać drzwi otwartych -- możliwość wykorzystania błędów w oprogramowaniu. Kiedy pracujesz jako administrator system jest bardziej narażony na wirusy i tym podobne. Najlepszym sposobem obrony jest zamknięcie drzwi w chwili gdy nie potrzebujesz by były otwarte. (Wystarczająco wiele błedów włazi już przez okna, jeśli wiesz o czym mówię.)

>> Co jeśli zapomniałem hasła administratora?

Jesteś załatwiony.

No dobra nie zupełnie. Ale bądźmy szczerzy, powinieneś być. Hasło administratora jest głównym kluczem do Twojego komputera niczym klucz do apartamentu; zapomnieć je jest prawie tak złe jak umieszczenie go na karteczce przyczepionej do monitora. To wielki błąd.

Zapomniane hasło administratora jest nie do odzyskania. Może natomiast zostać podmienione. Jako, że na pewno masz bardzo dobre wytłumaczenie na zapomnienie hasła -- coś w stylu amnezji lub nowotworu mózgu -- podamy Ci kilka wskazówek na uratowanie swojego tyłka. Zauważ, że żadna z porad nie może być zastosowana zdalnie -- wszystkie wymagają bezpośredniego dostępu do maszyny. W dodatku upewnij się, że stosujesz je na komputerze na którym masz uprawnienia do takich modyfikacji. Jeśli użyjesz poniższych informacji by ominąć zabezpieczenia w systemie w którym nie powinieneś tego robić, prawdopodobnie popełnisz przestępstwo. Jeśli masz komputer z systemem

Linux

oraz używasz LILO jako boot menedżera:

  1. Zrestartuj maszynę używając reboot, shutdown -r now, lub control-alt-delete.
  2. Gdy pojawi się znak zachęty LILO, wpisz linux 1 lub linux single. To uruchomi system w trybie jednego użytkownika. (Powinieneś zauważyć, że nie zostaniesz zapytany o hasło.)
  3. Gdy pojawi się znak zachęty systemu, wpisz passwd root. System poprosi o podanie nowego hasła administratora.
  4. Zrestartuj maszynę i zaloguj się tak jak zwykłeś to robić wcześniej.
  5. Nie zapomnij nowego hasła głuptasku!

oraz używasz GRUB'a jako boot menedżera:

  1. Zrestartuj maszynę używając reboot, shutdown -r now, lub control-alt-delete.
  2. W menu boot menedżera naciśnij e by wejść do trybu edycji.
  3. Ujżysz listę możliwych opcji uruchomienia. Poszukaj linii podobnej do:
    kernel /vmlinuz-2.4.18-0.4 ro root=/dev/hda2
  4. Naciskaj klawisz kursora w dół aż ta linia będzie podświetlona i naciśnij e by rozpocząć edycję.
  5. Dodaj słowo single na końcu tej linii by powiedzieć GRUB'owi by załadował system w trybie jednego użytkownika.
  6. Wciśnij ENTER by potwierdzić zmiany.
  7. Zobaczysz teraz tryb edycji. Wciśnij b by kontynuować ładowanie w trybie jednego użytkownika.
  8. Gdy pojawi się znak zachęty systemu, wpisz passwd root. System poprosi o podanie nowego hasła administratora.
  9. Zrestartuj maszynę i zaloguj się tak jak zwykłeś to robić wcześniej.
  10. Nie zapomnij nowego hasła głuptasku!

Mac OS X

  1. Zrestartuj komputer klikając zrestartuj w oknie logowania lub klikając ikonę restart na pasku.
  2. Podczas restartowania komputera przytrzymaj na raz klawisz (Jabłko) polecenia oraz klawisz S, aż zobaczysz przesuwający się na ekranie tekst. Będzie to oznaczać, że system ładuje się w trybie jednego użytkownika.
  3. Widząc znak zachęty Localhost% wpisz:
    /sbin/mount -uw /
    /sbin/SystemStarter
  4. Powinieneś zobaczyć komunikaty o startowaniu różnych usług. Kiedy znowu zobaczysz znak zachęty Localhost% wpisz passwd root. Kiedy poprosi, wpisz nowe hasło administratora. Następnie powtórz je.
  5. Po wprowadzeniu nowego hasła zrestartuj maszynę przy pomocy polecenia reboot.
  6. Nie zapomnij nowego hasła głuptasku!

Jeśli żadna z opisanych metod nie zadziała, poszukaj guru uniksowego i błagaj go o pomoc. Nie zapomnij o trzech najważniejszych rzeczach, w które musisz uzbroić się szukając pomocy w środowisku uniksowych specjalistów: czekoladzie, napojach kofeinowych i cheepsach.

Wybierając hasło administratora, upewnij się by było łatwe do zapamiętania dla Ciebie, ale trudne do odgadnięcia dla innych. Słowo hasło nie jest najlepszym pomysłem na hasło administratora. Tak samo jak Twoje imię, data urodzenia, numer pesel czy coś podobnego. I na litość boską nie zapisuj tego hasła na karteczce i nie przypinaj jej do monitora. To tak jakbyś zostawiał klucze na wycieraczce zamiast pod nią.


Zamierzeniem tego artykułu nie jest wyczerpujące opisanie uprawnień administratora na komputerach z systemami typu Unix, ale powinno być to wystarczaje wprowadzenie. Więcej informacji o administratorze oraz administracji możesz znaleźć na następujących stronach:

przypisek tłumacza : strony w języku angielskim!

Możesz również skorzystać z tych książek:

Jeśli masz jakieś dodatkowe pytania dotyczące systemu Unix, lub potrzebujesz specjalizowanych systemów zarządzania, skontaktuj się z Iodynamics pod adresem info@iodynamics.com.

Podziękowania

Spejalne podziękowania dla wszystkich, którzy przysyłali bardzo pomocne komentarze, które miały wpływ na ostateczny poziom artykułu. Między innymi Cody Batt, Miles Johnson oraz następujący użytkownicy Slasdot teridon, DeadSea, aridhol, akamoe, i Joel. Ekstra podziękowania dla Doran Barton, bez którego wiedziałbym dużo mniej o Linuksie.

O autorze

David Baker pracuje jako dyrektor komunikacji w Iodynamics. Zajmuje się szeroko rozumianym public relations. Poprzednio instruktor - kompozytor i zawodowy muzyk, ukończył MA in Linguistics i BA in English. Baker 8 lat zajmował się projektowaniem na polu interfejsów oraz multimediów. Jest główną osobą odpowiedzialną za twórcze aspekty Iodynamics. Jest również nawróconym użytkownikiem Mac'ów oraz popularyzatorem Linuksa. Można się z nim skontaktować poprzez e-mail < davidb@iodynamics.com>

[$Id: root101.html,v 1.15 2003/02/28 16:46:09 fozz Exp $]

© Copyright 1998-2002 Iodynamics LLC.
Kopiowanie jakiejkolwiek części tej strony bez zgody Iodynamics LLC jest zabronione.
Komentarze oraz pytania powinny być kierowane na e-mail webmaster@iodynamics.com.


Od tłumacza

Serdecznie podziękowania dla bazyla, GrZeNiA oraz salvadora z kanału #debian.pl za pomoc w tłumaczeniu.
Specjalne podziękowania dla Oskara Ostafina za wytykanie literówek oraz uwagi dotyczące tłumaczenia.
Wszelkie sugestie/komentarze związane z tłumaczeniem powinny być kierowane na adres fenio@debian.org.
Strona główna

© 2003 by fenio at.gifdebian.org