Część druga
Poznawanie Linuxa
W tej części:
Od czego zacząć
Podstawowe polecenia
System plików
Prawa dostępu do plików i katalogów
Programy użytkowe projektu GNU
bash
pdksh
tcsh
Programowanie w języku powłoki
FTP i Telnet
Rozdział 6.
Od czego zacząć?
Ed Trejis i Tim Parker
W tym rozdziale:
Uruchamianie i zamykanie systemu
Co to znaczy zalogować się?
Hasła
Zakładanie nowego konta
Wypróbowywanie nowego konta
Polecenie who
Terminale wirtualne
Polecenia i programy
Uruchamianie i zamykanie systemu
Proces uruchamiania Linuxa zależy od konfiguracji programu LILO. W najprostszym przypadku uruchamia się on automatycznie z dysku twardego lub dyskietki. Jeśli w systemie zainstalowane są inne wersje Linuxa lub inne systemy operacyjne, to aby system został załadowany, należy zazwyczaj po uruchomieniu komputera wprowadzić jakąś etykietę.
Podczas inicjalizacji systemu Linux przez ekran przewija się mnóstwo komunikatów. Są to informacje o wykrytym sprzęcie oraz o sterownikach programowych ładowanych przy uruchamianiu. Po zakończeniu sekwencji startowej powinieneś zobaczyć komunikat
darkstar login:
Nazwa na początku tego komunikatu prawdopodobnie będzie inna; zależy ona od wersji instalowanego oprogramowania. Niektóre systemy pokazują również informację o wersji, na przykład tak:
Welcome to Linux 1.2.13
darkstar login:
Inna postać tych komunikatów z pewnością nie jest powodem do zmartwień. Różnią się one w zależności od dystrybucji. Po zalogowaniu się zawsze wyświetlany jest jakiś znak zachęty, na przykład symbol dolara.
|
System linuxowy zawsze musi zostać prawidłowo zamknięty. Niewłaściwe zakończenie działania systemu, np. przez wyłączenie komputera, może spowodować poważne uszkodzenie systemu plików. Procedura zamykania systemu opisana jest w następnym podrozdziale. Jeśli zdarzy Ci się rozpocząć przez przypadek uruchamianie Linuxa, powinieneś pozwolić na dokończenie sekwencji startowej, a następnie zamknąć system. Przerywając sekwencję startową, ryzykujesz utratę danych. |
Wiesz już, jak uruchomić Linuxa, ale jeszcze ważniejsze jest, by wiedzieć, jak go prawidłowo zamknąć. Podobnie jak w większości systemów pozwalających na jednoczesną pracę wielu użytkowników (np. UNIX czy Windows NT), nieprawidłowe zamknięcie Linuxa może skończyć się uszkodzeniem pojedynczych plików, lub, co gorsza, całego systemu plików. Spowodowane jest to faktem, że Linux przechowuje najświeższe informacje o strukturze systemu plików (tablica I-node) w pamięci, w celu przyspieszenia operacji dyskowych. Podczas prawidłowego zamknięcia systemu wersja przechowywana w pamięci jest zapisywana na dysku. Jeśli tablica I-node nie zostanie prawidłowo zapisana, zawartość dysku twardego może nie zgadzać się z danymi ją opisującymi. Rezultaty takiej sytuacji są nieprzewidywalne. Poza tym Linux używa dysków twardych w sposób ciągły, niezależnie od tego, czy akurat korzystasz z systemu, czy nie. Przerwanie zapisu może również spowodować uszkodzenie systemu plików. Prawidłowe zamknięcie systemu wymusza najpierw zakończenie wszystkich zapisów na dysk.
Najłatwiejszym sposobem na poprawne zamknięcie systemu jest użycie klawiszy Alt+Control+Delete. Na ekranie pojawi się seria komunikatów. Po zakończeniu procedury zamykającej system uruchomi się ponownie. Cała operacja zajmuje kilka sekund. Jest szybka i łatwa, a jednocześnie chroni przed uszkodzeniem systemu plików.
Z metodą opisaną powyżej wiąże się jednak pewne niebezpieczeństwo: wszyscy użytkownicy zalogowani do systemu zostaną brutalnie odłączeni, tracąc wszystkie niezapisane dane. Należy więc uprzedzić wszystkich użytkowników przed jej zastosowaniem. Aby sprawdzić, kto aktualnie jest zalogowany, można użyć polecenia who (jest ono opisane dokładniej w dalszej części tego rozdziału).
Polecenia zamykające Linuxa
Istnieje również kilka innych metod wyłączenia systemu. Najczęściej spotykane polecenia służące do wykonania tego zadania to shutdown, haltsys i fasthalt (ich nazwy mogą się różnić w zależności od wersji oprogramowania). Musisz sam sprawdzić, które z nich są obsługiwane w Twoim systemie.
Drugim z najpopularniejszych sposobów zamykania systemu jest użycie polecenia shutdown. Jego składnia pozwala na podanie kilku parametrów, na przykład czasu, po jakim ma nastąpić wyłączenie, i czy po wyłączeniu powinno nastąpić ponowne uruchomienie systemu. Parametr określający czas jest w większości wersji wymagany. Przykładowo, polecenie
shutdown -t45
powoduje zamknięcie systemu po 45 sekundach od jego wydania. Niektóre wersje nie wymagają przełącznika -t, interpretując liczbę jako ilość sekund, jaką mają odczekać. Jeśli chcesz zamknąć system natychmiast, powinieneś wpisać liczbę 0 lub też (w niektórych systemach) użyć opcji now:
shutdown now
Opcja -r powoduje restart systemu po zamknięciu go. Może być ona użyteczna podczas testowania nowych konfiguracji, na przykład dołączania nowych wersji sterowników. Listę innych dostępnych opcji można zazwyczaj uzyskać, wpisując polecenie shutdown bez parametrów. Również strony systemu pomocy man zawierają odpowiednie informacje.
Polecenia fasthalt i haltsys zostały przeniesione z innych wersji UNIX-a i, jak wskazują ich nazwy, służą do natychmiastowego zamknięcia systemu.
Co to znaczy zalogować się?
Po uruchomieniu systemu Linux pozwala Ci się zalogować. Twój identyfikator, a raczej identyfikator Twojego konta, dzięki któremu system wie, kto aktualnie go używa, nazywany jest po angielsku login. Linux pamięta zestaw identyfikatorów osób, których dostęp do systemu jest dozwolony. Bez znajomości jednego z nich i towarzyszącego mu hasła dostęp do systemu nie jest możliwy (a przynajmniej nie powinien być).
W obrębie jednego systemu identyfikatory użytkowników nie mogą się powtarzać, zwykle każdy z nich ma przypisane inne hasło. Hasło funkcjonuje podobnie jak numer identyfikacyjny w banku: pozwala systemowi zweryfikować tożsamość użytkownika. Różni użytkownicy mają różne prawa dostępu. Niektórzy z nich mogą robić z systemem co im się tylko zamarzy, inni zaś mogą mieć dostęp tylko do wyznaczonych danych. Przywileje te są ustalane przez administratora systemu (osobę zakładającą nowe konta).
|
Identyfikator użytkownika zazwyczaj odpowiada w jakiś sposób jego prawdziwemu nazwisku czy imieniu. W większych systemach może on na przykład składać się z kombinacji pierwszej litery imienia i nazwiska, na przykład tparker czy rmaclean. Mniejsze systemy zazwyczaj są mniej formalne i identyfikatorami mogą być zdrobnienia imion, inicjały itp. Pamiętaj, że identyfikator typu szef nic nie mówi innej osobie korzystającej z systemu i może być przyczyną nieporozumień. |
Choć w obrębie jednego systemu identyfikatory nie mogą się powtarzać, można stworzyć konta dla użytkowników o takich samych imionach i nazwiskach po prostu zmieniając jedną czy dwie litery; będą one traktowane przez system jako zupełnie oddzielne.
Nic natomiast nie stoi na przeszkodzie, by jeden użytkownik posiadał dwa lub więcej kont. W rzeczywistości, będąc administratorem systemu, powinieneś posiadać jedno konto z uprawnieniami administratora i jedno jako zwykły użytkownik.
Nawet jeśli podasz niewłaściwy identyfikator użytkownika, na przykład imię swojego psa (niewłaściwy, czyli nie rozpoznawany przez system), i tak zostaniesz zapytany o hasło. Cokolwiek wprowadzisz, Linux nie pozwoli na dostęp do systemu, wypisując komunikat Login incorrect. Taki sam komunikat zostanie wyświetlony, jeśli podasz właściwy identyfikator, ale nieprawidłowe hasło.
Jedyne konto dostępne po instalacji systemu, o identyfikatorze root, posiada pełne prawa dostępu, w związku z czym jego używanie wiąże się z różnymi niebezpieczeństwami. W podrozdziale „Tworzenie nowego konta” opisana zostanie procedura zakładania konta bezpiecznego w użyciu. Identyfikator takiego konta może być dowolny. Niektóre wersje programu instalującego Linuxa wymuszają utworzenie takiego konta już podczas instalacji.
|
Dlaczego Linux pyta o hasło nawet wtedy, gdy podany identyfikator nie jest prawidłowy? Powodem takiego zachowania jest fakt, że Linux używa programu login, który najpierw żąda wprowadzenia identyfikatora i hasła, a dopiero potem sprawdza ich poprawność. Następnie albo wyświetla komunikat o tym, że dostęp do systemu nie został przyznany, albo przekazuje sterowanie do programu obsługującego dalszą część procesu logowania. |
Dlaczego nie powinieneś używać konta root
Od czasu do czasu użycie konta root jest niezbędne, ponieważ tylko użytkownik root posiada pełne uprawnienia. Nie powinieneś go jednak używać podczas normalnej pracy, a już na pewno nie wtedy, gdy chcesz poeksperymentować z nieznanymi poleceniami. Ograniczone prawa dostępu zapewniają wtedy względne bezpieczeństwo systemu.
Linux, jak już wiesz, jest systemem wielozadaniowym i wieloużytkownikowym. W tym samym czasie z systemu może korzystać kilka osób (oczywiście za pośrednictwem terminali). Wielozadaniowość oznacza, że Linux może wykonywać jednocześnie więcej niż jeden program. Przykładowo, można sprawdzać pisownię w dokumencie, jednocześnie ładując z Internetu jakąś dokumentację itp. (możliwość korzystania z systemu przez wielu użytkowników wymusza wielozadaniowość, ponieważ każdy użytkownik musi mieć możliwość uruchamiania różnych programów). Linux pod tym względem działa znakomicie, nie pozwalając na uszkodzenie systemu czy wyników pracy innych użytkowników.
|
Konto root nie nakłada na użytkownika żadnych ograniczeń. Oznacza to, że używając jakiegoś polecenia, celowo czy przypadkowo możesz zniszczyć cały system plików Linuxa. Dlatego używaj tego konta tylko wtedy, gdy jest to naprawdę konieczne. Unikaj eksperymentowania, gdy jesteś zalogowany jako root. |
Jeśli zalogujesz się jako root, masz pełną kontrolę nad systemem. Identyfikator ten nazywa się też czasem - nie bez powodu - superuser. Używając porównania, zwykły użytkownik jest pasażerem samolotu, zaś root jego pilotem. Jest odpowiedzialny za załogę, pasażerów i cały sprzęt. Pytanie „Hmm, do czego to służy?” staje się w tym momencie naprawdę niebezpieczne.
W systemach UNIX-owych zdarzają się sytuacje, że nowy administrator po zainstalowaniu systemu i zalogowaniu się jako root niszczy go po kilku sekundach. Jeśli jednak będziesz przestrzegał podanych tu wskazówek i nie będziesz wydawał poleceń, których skutków nie jesteś w stanie przewidzieć, żarty w stylu „ilu nowych użytkowników potrzeba, żeby wyłożyć system?” nie będą się odnosiły do Ciebie.
|
Inny termin, z którym nieraz jeszcze się zetkniesz, to administrator systemu. Jest to osoba, która instaluje i opiekuje się systemem linuxowym. Ilość pracy, jaką musi wykonać, jest bardzo różna, w zależności od systemu. Pełnoetatowy administrator może okazać się niezbędny np. w biurze posiadającym kilka większych komputerów, wielu użytkowników i takie urządzenia, jak drukarki czy napędy taśmowe, połączone w sieć. Twój system linuxowy najprawdopodobniej nie będzie wymagał zbyt intensywnej opieki. Administracja systemem, włączając takie czynności, jak na przykład zakładanie i usuwanie kont, wymaga przywilejów oferowanych przez konto superuser czy root. Administrator jest więc jedyną osobą, która ma uzasadnione powody do ich używania |
Twoje pierwsze logowanie
Przymykając na razie oko na wszystkie powyższe ostrzeżenia, zaloguj się jako root. Ponieważ jest to jedyny użytkownik mający uprawnienia do tworzenia nowych kont, jest to nieuniknione. Poza tym trzeba będzie przeprowadzić kilka operacji wymagających specjalnych uprawnień. Zaraz po pierwszym zalogowaniu się do systemu utworzymy jakieś bezpieczne konto.
W odpowiedzi na monit
darkstar login:
wpisz
root
i wciśnij klawisz Enter. Jeśli podczas instalacji Linuxa zostałeś zapytany o hasło dla użytkownika root, musisz je teraz podać. W przeciwnym przypadku system nie zapyta o hasło. Jeśli zdarzy Ci się zapomnieć hasła administratora, będziesz niestety zmuszony do przeinstalowania całego systemu.
|
W systemie Linux małe i wielkie litery są rozróżniane (podobnie jak we wszystkich wersjach UNIX-a). Wielka litera „R” to zupełnie inny znak niż małe „r”. Podczas wydawania poleceń musisz przestrzegać właściwej wielkości liter, inaczej bowiem nie zostaną one rozpoznane. Większość poleceń powinna być wydawana małymi literami, choć istnieje kilka wyjątków. Dotyczy to również identyfikatorów: Root czy rOot nie zostanie rozpoznany jako prawidłowy identyfikator (chyba że utworzysz konto o takiej właśnie nazwie). Również hasła takie jak pies, Pies i PIES są w systemie Linux rozpoznawane jako zupełnie różne ciągi znaków. Jest jednak dość ciekawy wyjątek od tej reguły: jeśli identyfikator użytkownika zostanie wpisany tylko wielkimi literami, zostanie on zaakceptowany, ale od tej chwili wszystkie komunikaty będą wypisywane wielkimi literami. Jest to pozostałość z zamierzchłych czasów, gdy niektóre terminale obsługiwały tylko wielkie litery. Dziś już się ich nie spotyka, ale w programie login pozostawiono ten fragment kodu jako ciekawostkę historyczną. Nie radzimy jednak używać tego trybu, bo system wygląda wtedy dość dziwnie. |
Jeśli pomylisz się, wpisując identyfikator lub hasło, Linux nie pozwoli na dostęp do systemu - musisz spróbować jeszcze raz. Ponieważ używasz konsoli głównej, możesz próbować do skutku. Niektóre systemy, ze względów bezpieczeństwa, blokują konsolę po zadanej liczbie nieudanych prób wejścia do systemu. Konsola główna jednak prawie zawsze pozwala na dowolną ilość prób.
Po tym, jak zalogowałeś się jako root, system uruchamia nową sesję. W tym momencie ekran zazwyczaj wygląda mniej więcej tak:
darkstar login: root
Last login: Sun Dec 11 17:26:18 on tty1
Linux 1.2.13 (POSIX).
You have mail.
If it's Tuesday, this must be someone else's fortune.
darkstar:~#
Niektóre systemy po zalogowaniu nie wypisują żadnych komunikatów, wyświetlając tylko znak zachęty (na przykład #) i kursor. W przypadku systemu z powyższego przykładu, Linux podaje informacje o tym, kiedy dane konto było ostatnio używane (ta informacja może się nie pokazać podczas pierwszego logowania) i dostarcza kilku informacji o wersji. Informuje też o tym, że dla danego użytkownika przyszła pocztą elektroniczną wiadomość i oczekuje ona na przeczytanie. Jeśli w systemie zostały zainstalowane gry, Linux przywita Cię powiedzonkiem lub cytatem (generowanym przez program fortune). Dystrybutorzy Linuxa modyfikują dane wyświetlane podczas logowania, tak że naprawdę trudno przewidzieć, co pojawi się na ekranie akurat w Twoim systemie.
Jeśli system dostarcza takiej informacji, zawsze warto sprawdzić czas ostatniego logowania się. Ma to szczególne znaczenie, gdy z systemu korzystają inni użytkownicy. Nieprawidłowa wartość oznacza zazwyczaj, że ktoś włamał się do systemu i używa Twojego konta i uprawnień bez Twojej wiedzy i zgody. Aby zaradzić takiej sytuacji, powinieneś zmienić hasło (wkrótce pokażemy, jak to zrobić).
Czytaniem oczekującej poczty zajmiemy się nieco później, teraz przyjrzyjmy się ważniejszym tematom (jeśli Cię to nurtuje, większość systemów wysyła pocztę do administratora w czasie instalacji - dotyczy ona spraw związanych z rejestracją oprogramowania).
Powiedzonko pokazujące się po uruchomieniu systemu jest wybierane losowo z długiej listy, nie spodziewaj się więc, że będzie ono takie jak w podanym przykładzie. Nie zobaczysz go wcale, jeśli nie zainstalowałeś pakietu games. Jeżeli chcesz, możesz oczywiście zainstalować go w każdej chwili.
Ostatni wiersz wyświetlany na ekranie (zakończony znakiem #) jest tzw. „zachętą systemową”. Informuje ona, że Linux jest gotowy na przyjmowanie poleceń. Zawiera też kilka informacji:
darkstar to nazwa systemu,
znak ~ oznacza położenie w systemie plików (dokładniej zagadnienie to zostanie omówione w rozdziale 8. „System plików”),
znak # zazwyczaj oznacza, że jesteś zalogowany jako root (choć w niektórych systemach pojawia się znak $, co uniemożliwia łatwe odróżnienie, czy jesteś zalogowany jako root czy zwykły użytkownik). Zgodnie z konwencją stosowaną w systemie UNIX, zwykły użytkownik zobaczy zamiast niego symbol % lub $, zależnie od używanej powłoki, a symbol # jest zarezerwowany dla użytkownika root.
Hasła
W Linuxie (podobnie jak we wszystkich systemach UNIX-owych) identyfikatorem administratora jest root. Nieważne, czy system jest mały czy duży, jeśli możesz zalogować się jako root, masz nad nim pełną kontrolę. Oczywiście zezwolenie komuś obcemu na zalogowanie się jako root niesie ze sobą mnóstwo potencjalnych niebezpieczeństw.
Aby uniknąć problemów, konto root należy zawsze zabezpieczyć hasłem, które bezwzględnie powinno być tajne. Zauważyłeś, że Linux mógł nie zapytać o hasło podczas pierwszego logowania. Powodem takiej sytuacji jest fakt, że podczas instalacji jest ono ustawiane jako puste (ang. null string). Linux w takim przypadku zazwyczaj nie pyta o hasło. Jeśli podczas instalacji hasło zostało podane, musisz je również podać podczas logowania.
Hasło puste jest najmniej bezpiecznym hasłem, ponieważ każdy, kto zna identyfikator (root) ma dostęp do systemu, należy więc je zmienić. Linux pozwoli Ci wybrać nowe hasło i zaakceptuje je bez problemu. Niestety, stwarza to złudne poczucie bezpieczeństwa.
Powszechnie wiadomo, że dawniej użytkownicy wybierali hasła, które łatwo im było zapamiętać: imię psa, datę urodzenia, rodzinne miasto itp. Niestety, hasła tego typu są łatwe do odgadnięcia. Niektórzy administratorzy systemów wymuszali więc użycie przypadkowo wybieranych, trudnych do złamania, ale i do zapamiętania, haseł typu S8t6WLk. Użytkownicy zazwyczaj nie potrafili zapamiętać takich haseł, więc je zapisywali, po czym notatki kładli na biurku. Powodowało to powstanie kolejnej dziury w systemie bezpieczeństwa.
Z tych powodów administratorzy systemów zalecają używanie haseł nie związanych osobiście z użytkownikiem i nie będących pojedynczym słowem, które można znaleźć w słowniku. Ten ostatni wymóg spowodowany jest faktem, że niektóre procedury łamiące hasła opierają swe działanie na dużym słowniku, sprawdzając kolejno wszystkie wyrazy. Dobrze jest również używać w haśle zarówno liter jak i cyfr. Przykładowo, hasło sie48kiera jest o wiele trudniejsze do złamania niż siekiera. Program łamiący hasła nie jest w stanie w rozsądnym czasie sprawdzić wszystkich kombinacji słów ze słownika i cyfr.
Najlepsze są hasła składające się z dużych i małych liter oraz cyfr, ale nadal dające się zapamiętać, np. 3majE2rda czy 100Krotka. Tego typu trudne do złamania hasła czasem nazywa się hasłami mocnymi - w odróżnieniu od haseł słabych, łatwych do odgadnięcia.
Z punktu widzenia bezpieczeństwa systemu, hasła powinny być zmieniane możliwie najczęściej. Większość administratorów uważa, że zmiana hasła raz na dwa lub trzy miesiące jest wystarczająca. Pozwala to również zmniejszyć ewentualne szkody, jeśli hasło zostało już złamane, ale nie spowodowano większych spustoszeń.
|
Nie pozostawiaj swojego terminala bez opieki, kiedy jesteś zalogowany. Ktoś może to wykorzystać i usunąć jakieś ważne dla Ciebie pliki albo wysłać obraźliwą pocztę do kogoś, kogo nie chciałbyś obrazić. Zawsze, gdy wychodzisz, wyloguj się lub zablokuj terminal. Oczywiście, jeżeli terminal stoi w Twojej sypialni i nikogo nie ma w domu, nie jesteś podłączony do sieci bezpośrednio ani przez modem, nie musisz się szczególnie martwić. Wylogowywanie się powinno jednak wejść Ci w krew jak najszybciej - przy pracy w sieci jest ono niezbędne. |
Oczywiście ilość zabezpieczeń używanych w systemie powinna zależeć od jego dostępności i od tego, jak ważne dane są w nim zapisane. Hasło użytkownika root powinno być jednak zawsze bardzo dobre.
Jeśli praca z Linuxem jest dla Ciebie tylko eksperymentem, wiele z problemów związanych z bezpieczeństwem nie ma większego znaczenia. Mimo wszystko, utrzymywanie bezpieczeństwa na wysokim poziomie nie jest trudne i nie należy go zaniedbywać, a nabyte przyzwyczajenia można później przenieść do większych systemów UNIX-owych.
Do zmiany lub przypisania hasła służy polecenie passwd (skrócona wersja angielskiego słowa password - hasło). Zmienić hasło użytkownika root można tylko wtedy, gdy jesteś zalogowany jako root, ale użytkownik root może zmienić hasło każdego innego użytkownika. Każdy z użytkowników może prawie zawsze zmienić swoje hasło (chyba że zabroni tego administrator systemu).
Aby zmienić hasło użytkownika root, zaloguj się jako root i użyj polecenia passwd. Zostaną wyświetlone następujące komunikaty:
darkstar:~# passwd
Changing password for root
Enter new password:
Teraz należy wprowadzić nowe, bezpieczne hasło. To, co wpisujesz, nie jest wyświetlane na ekranie; rozwiązanie takie zabezpiecza przed podglądaniem w czasie wpisywania hasła.
|
Upewnij się, że wpisałeś hasło powoli i ostrożnie. Kiedy któryś z użytkowników zapomni hasła, może ono być zmienione przez administratora. Jeśli jednak zapomnisz hasła administratora, pozostaje Ci tylko przeinstalować system. |
Ponieważ bardzo ważne jest, by hasło zostało wpisane prawidłowo, system wymaga ponownego podania hasła:
Retype new password:
Również teraz hasło nie zostanie wyświetlone. Jeśli obie wprowadzone wersje hasła są identyczne, zostanie wyświetlony komunikat:
Password changed.
darkstar:~#
Nowe, obowiązujące od tego momentu hasło zostało zapamiętane w odpowiednich plikach konfiguracyjnych, a stare zostało usunięte.
Jeśli dwie wprowadzone wersje hasła nie są identyczne, hasło nie zostanie zmienione i wypisany zostanie następujący komunikat:
You misspelled it. Password not changed.
W takim przypadku należy ponowić procedurę zmiany hasła.
|
Jeśli chcesz przerwać program i wrócić do interpretera poleceń, wciśnij Control+C (czyli wciśnij klawisz C, trzymając wciśnięty klawisz Control - taką kombinację klawiszy oznacza się też czasem jako ^C). Przeważnie pozwala to zakończyć każdy uruchomiony program, nie powodując żadnych problemów, i wrócić do powłoki. Przykładowo, jeśli zacząłeś zmieniać hasło, ale żadne nie przychodzi Ci do głowy, wciśnięcie Control+C kończy program passwd, nie powodując zmiany hasła. |
Zakładanie nowego konta
Po przypisaniu hasła dla konta root należy założyć nowe konto, za pomocą którego będzie można bezpiecznie eksperymentować i poznawać tajniki Linuxa. Niektóre systemy linuxowe wymuszają utworzenie takiego konta podczas instalacji. Nawet jeśli utworzyłeś takie konto podczas instalacji, prawdopodobnie i tak wkrótce będziesz dodawał nowe konta dla kolegów czy brata.
Do tego celu można wykorzystać program adduser, który automatyzuje i upraszcza proces zakładania nowego konta (kiedyś jedyną metodą była ręczna edycja plików konfiguracyjnych). Po uruchomieniu go, ekran powinien wyglądać mniej więcej tak:
darkstar:~# adduser
Adding a new user. The username should be not exceed 8 characters in length, or you may run into problems later.
Enter login name for new account (^C to quit):
Wyświetlane komunikaty mogą być nieco inne, ale sam program działa zawsze tak samo. Niektóre wersje Linuxa zawierają analogiczne programy działające w trybie pełnoekranowym, a nawet graficznym, ale wszystkie one spełniają dokładnie te same funkcje i wymagają podania takich samych informacji.
Każdy użytkownik systemu musi posiadać własne konto (tożsame z identyfikatorem). Możesz utworzyć dla siebie konto, którego będziesz stale używał, możesz też założyć konto „eksperymentalne”, które usuniesz, gdy lepiej poznasz Linuxa. Inaczej niż w niektórych systemach pozwalających na pracę wielu użytkowników (np. Windows NT), możesz zakładać i usuwać konta jak często masz na to ochotę. Można też kilkakrotnie zakładać i usuwać konto o takim samym identyfikatorze.
Identyfikatory użytkowników mogą składać się z dowolnych liter i cyfr, warto jednak przestrzegać zasady, by ich długość nie przekraczała 8 znaków. Pozwoli to łatwo używać ich również przy połączeniach internetowych. Zazwyczaj identyfikator użytkownika pochodzi od prawdziwego imienia lub nazwiska osoby używającej danego konta, na przykład michalk czy mkowalski. Jeśli z Twojego systemu będzie korzystać więcej użytkowników, warto przyjąć jakąś jednolitą konwencję i trzymać się jej. Pomoże to zachować porządek i orientować się, kto jest kim.
W niektórych wersjach Linuxa składnia polecenia adduser wymaga podania identyfikatora konta, np.:
adduser michalk
Jeśli tak jest w przypadku Twojego systemu, po wpisaniu samego polecenia adduser wyświetlony zostanie komunikat o błędzie.
W identyfikatorach użytkowników zaleca się używać tylko małych liter, a ich długość nie powinna przekraczać 8 znaków. Oczywiście dłuższy identyfikator zawierający małe i wielkie litery utrudni życie hakerom próbującym włamać się do systemu, ale możesz natknąć się na pewne trudności podczas używania sieci.
Na potrzeby tego rozdziału załóżmy konto o identyfikatorze burek. Można oczywiście wybrać inną nazwę, chyba że ta akurat Ci odpowiada.
Enter login name for new account (^C to quit): burek
Editing information for new user [burek]
Full Name:
Po wprowadzeniu identyfikatora program adduser zada serię pytań dotyczących nowego użytkownika oraz środowiska, w jakim będzie on pracował. Kolejność tych pytań może być nieco inna niż w przykładzie.
W przykładzie powyżej system oczekuje na podanie prawdziwego imienia i nazwiska użytkownika (można tu używać małych i wielkich liter oraz spacji). Choć informacje te nie są wymagane, system wykorzystuje je w niektórych sytuacjach, gdzie, mogą one okazać się pomocne. Również inni użytkownicy sieci mogą zidentyfikować użytkownika dzięki tym informacjom. Idźmy więc dalej:
Full Name: Pies Burek
GID [100]:
Teraz system czeka na wprowadzenie numeru grupy (ang. Group ID; temat ten zostanie omówiony szczegółowo w rozdziale 35. „Użytkownicy i konta”). W podanym przykładzie podpowiadana jest wartość 100 - jest to pierwsza dostępna wartość. Można jej użyć, chyba że komputer jest częścią większego systemu posiadającego własne konwencje dotyczące tworzenia nowych kont. Można również później zmienić odpowiednie przyporządkowania.
|
W programie adduser, podobnie jak w wielu innych programach linuxowych, domyślne wartości podawane są w nawiasach kwadratowych. Można oczywiście wpisać inną wartość, ale jeśli chcesz zaakceptować wartość domyślną, wystarczy wcisnąć klawisz Enter. Czasem również w nawiasie kwadratowym podawane są dwie wartości, rozdzielone znakiem /, | lub nawet nie rozdzielone, na przykład [Y/n], [Y|n] czy [Yn]. Oznacza to, że dostępne są tylko dwie wartości, a domyślnie wybrana zostanie ta pisana wielkimi literami - jeśli chcesz ją zaakceptować, wystarczy wcisnąć Enter, ale jeśli chcesz wybrać drugą z możliwości - musisz ją wpisać. |
Po wprowadzeniu informacji o numerze grupy (lub zaakceptowaniu sugerowanej wartości) program adduser oczekuje na podanie dalszych informacji:
GID [100]:
Checking for an available UID after 100
First unused uid is 101
UID [101]:
Jeśli akceptujesz wartość domyślną identyfikatora grupy, zazwyczaj nie jest ona wyświetlana na ekranie. Może to być trochę mylące, szczególnie gdy przeglądasz wydane przed chwilą polecenia i zastanawiasz się, co właśnie zrobiłeś. Jeżeli nie jest wypisana żadna wartość, oznacza to, że użyto wartości domyślnej. Trzeba się do tego przyzwyczaić, ponieważ tak zachowuje się większość programów linuxowych.
Następnie należy podać numer identyfikacyjny użytkownika (ang. User ID, UID). W tym przypadku program adduser podpowiada wartość 101. By ją zaakceptować, wciśnij Enter. Podobnie jak w przypadku identyfikatora grupy, nie ma jakichś szczególnych powodów, byś miał go zmieniać - chyba że system jest częścią większej organizacji.
|
Numer identyfikacyjny użytkownika jest używany przez system Linux za każdym razem, gdy zachodzi potrzeba zidentyfikowania użytkownika. System jest zaprojektowany w taki sposób, że używa numeru zamiast identyfikatora tekstowego, ponieważ liczba zajmuje mniej miejsca i łatwiej nią manipulować. Każdy użytkownik musi mieć przypisany inny numer. Zgodnie z przyjętą konwencją, numery poniżej 100 (w niektórych systemach poniżej 500) są zarezerwowane dla użytkowników specjalnych (np. użytkownik root ma numer 0). Numery przydzielane zwyczajnym użytkownikom zaczynają się zwykle od 100 (lub 500). |
|
Niektóre wersje Linuxa, np. Caldera OpenLinux, po wydaniu polecenia adduser nie wymagają podania żadnych informacji. Po prostu same wyszukują dostępne numery i przypisują je do nowego konta, w pozostałe pola wpisując wartości domyślne. Jest to rozwiązanie łatwe i przyjemne, dopóki nie trzeba używać jakichś niestandardowych ustawień (np. ze względów organizacyjnych). |
Należy podać również lokalizację katalogu domowego (macierzystego) i nazwę interpretera poleceń, który będzie używany przez nowego użytkownika:
Home Directory [/home/burek]:
Shell [/bin/bash]:
Dobrze pozostawić tu wartości domyślne. Więcej o katalogach możesz przeczytać w rozdziale 9. „Prawa dostępu do plików i katalogów”, a o różnych rodzajach powłok systemu operacyjnego w rozdziale 11. „bash”, rozdziale 12. „pdksh” i rozdziale 13. „tcsh”.
Ostatnią informacją, jaką należy podać, jest hasło dla nowego użytkownika. Jeśli wciśniesz Enter, hasło będzie identyczne jak nazwa konta, albo zostanie ustawione hasło puste - zależnie od wersji Linuxa. Pamiętaj o tym, że nawet proste hasło jest lepsze niż żadne.
Password [burek]:
Information for new user [burek]:
Home directory: [/home/burek] Shell: [/bin/bash]
uid: [101] gid: [100]
Is this correct? [y/N]:
Jeśli po weryfikacji podanych informacji stwierdzisz, że wszystko jest w porządku, wpisz y i wciśnij Enter. Jeśli wciśniesz tylko klawisz Enter, system potraktuje to jako odpowiedź n (domyślna) i będziesz musiał wprowadzić wszystkie informacje jeszcze raz.
Następnie utworzony zostanie katalog domowy użytkownika, a w plikach konfiguracyjnych zostaną zapisane odpowiednie informacje. Na ekranie mogą pojawiać się odpowiednie komunikaty:
Adding login [burek] and making directory [/home/burek]
Adding the files from the /etc/skel directory:
./.kermrc -> /home/burek/./.kermrc
./.less -> /home/burek/./.less
./.lessrc -> /home/burek/./.lessrc
./.term -> /home/burek/./.term
./.term/termrc -> /home/burek/./.term/termrc
darkstar:~#
Jak usunąć niepotrzebne już konta z pliku /etc/passwd, dowiesz się w rozdziale 35. „Użytkownicy i konta”.
Wylogowywanie się
Stworzyłeś już nowe konto, możesz więc go teraz używać czytając kilka następnych rozdziałów i poznając Linuxa. By zakończyć sesję jako root, wyloguj się z systemu za pomocą polecenia logout:
darkstar:~#logout
Welcome to Linux 1.2.13
darkstar login:
Teraz można ponownie zalogować się jako root, albo jako użytkownik, którego właśnie dodałeś do systemu.
Niektóre systemy pozwalają na wylogowanie się po wciśnięciu kombinacji klawiszy Control+D. Jeśli taka kombinacja nie jest obsługiwana, może zostać wyświetlony następujący komunikat:
Use "logout" to leave the shell.
Jeśli znasz systemy UNIX-owe, możesz być przyzwyczajony do używania tej kombinacji klawiszy. Jednak domyślna powłoka (bash) systemu Linux nie obsługuje jej (chyba że ustawisz odpowiednie mapowanie klawiatury). Czasem dostępne jest również polecenie logoff, spełniające tę samą funkcję co logout.
Wypróbowywanie nowego konta
Pora teraz wypróbować nowe konto. Przyjrzymy się też kilku interesującym cechom Linuxa.
Zaloguj się, podając identyfikator konta, które założyłeś. Jeśli byłeś zapobiegliwy i przypisałeś mu jakieś niepuste hasło, musisz je wprowadzić.
darkstar login: burek
Password:
Last login: Sun Dec 11 19:14:22 on tty1
Linux 1.2.13 (POSIX).
Quiet! I hear a hacker....
darkstar:~$
Większość komunikatów jest podobna do tych, które wyświetlane są przy logowaniu się użytkownika root. Niektóre systemy nie wyświetlają żadnych komunikatów, poza znakiem $, ale można to zmienić. Znak dolara informuje, że jesteś zalogowany jako zwyczajny użytkownik i pracujesz pod kontrolą powłoki bash (która jest proponowana domyślnie przez program adduser). Nie jest również wyświetlana informacja „You have mail” (bo nie otrzymałeś jeszcze żadnej poczty).
|
Zdarza się, że Linux jest skonfigurowany tak, że wysyła pocztę do wszystkich nowych użytkowników. Może to być jakiś rodzaj powitania, informacje o systemie itp. |
Aby przekonać się o różnicy pomiędzy użytkownikiem root a zwykłym użytkownikiem, spróbuj użyć polecenia adduser:
darkstar:~$ adduser
bash: adduser: command not found
Komunikat, który został wyświetlony, wygląda nieco tajemniczo. Jest to jednak typowy komunikat o błędzie, więc przyjrzyjmy się mu bliżej.
Komunikaty o błędach
W komunikacie o błędzie uzyskanym w poprzednim podrozdziale zawartych jest kilka informacji. Program, który podał ten komunikat, to bash, i jego nazwa pojawia się na początku komunikatu. Następnie wyświetlana jest nazwa programu, który sprawia kłopoty (adduser) i właściwy komunikat: polecenie nie zostało odnalezione (ang. command not found).
Gdyby przetłumaczyć ten komunikat na „normalny” język, mógłby on brzmieć następująco: „To ja, bash. Wydałeś polecenie adduser - szukałem programu o takiej nazwie, ale bezskutecznie. Nie wiem, o co Ci chodzi”. Z czasem przyzwyczaisz się do takich komunikatów - ich zrozumienie przestanie być dla Ciebie problemem.
Ścieżki przeszukiwania
Dlaczego użytkownik root ma dostęp do polecenia adduser, a zwykły użytkownik nie? W systemie jest wiele katalogów, zawierających jeszcze więcej plików (jednym z nich jest program adduser). Teoretycznie Linux mógłby przeszukać wszystkie katalogi i znaleźć zadany program. Jednak w przypadku, gdyby użytkownik root przez pomyłkę zamiast adduser wpisał aduser, Linux musiałby sprawdzić nazwy wszystkich plików w systemie, zanim stwierdziłby, że jest to pomyłka. W najlepszym przypadku trwałoby to kilka sekund i na pewno nie byłoby wygodne.
Z tego powodu w systemie zdefiniowane są ścieżki przeszukiwania (ang. search paths). Zostaną one omówione dokładniej w rozdziale 8. Jeśli w katalogach określonych tymi ścieżkami dany program nie zostanie odnaleziony, wygenerowany zostanie komunikat o błędzie. Ponieważ root używa wielu programów o charakterze administracyjnym, jego ścieżki przeszukiwania zawierają katalog z programami tego typu (/sbin czy /usr/sbin). Jak łatwo się domyślić, ścieżki przeszukiwania zdefiniowane dla zwykłego użytkownika nie zawierają takiego wpisu.
|
Ścieżki dostępu w systemie Linux spełniają w zasadzie tę samą funkcję, co w systemach DOS i Windows, choć inna jest składnia polecenia definiującego je i nazwy katalogów wyglądają nieco inaczej. |
Można oczywiście uruchomić program nie znajdujący się w żadnym z katalogów uwzględnionych w ścieżce przeszukiwania - należy po prostu dokładnie podać, w którym miejscu program ten jest zapisany, wtedy Linux nie będzie musiał go szukać. Spróbuj uruchomić program adduser bezpośrednio z katalogu /sbin:
darkstar:~$ /sbin/adduser
bash: /sbin/adduser: Permission denied
Tym razem bash odnalazł odpowiedni program (bo powiedziałeś mu dokładnie, gdzie powinien go znaleźć), ale stwierdził, że zwykły użytkownik nie posiada uprawnień do jego uruchomienia. Jak widać, Linux ogranicza poczynania użytkowników w zależności od ich uprawnień i tylko użytkownik root (przynajmniej na razie) może uruchomić program adduser (o prawach dostępu dowiesz się więcej z rozdziału 9.).
Polecenie who
Jednym z prostszych poleceń Linuxa, którego będziesz używał jeszcze wielokrotnie, poznając tajniki programowania w języku powłoki, jest polecenie who. Wyświetla ono informację o tym, kto jest aktualnie zalogowany do systemu. Jest ono niezwykłe pod tym względem, że nie pobiera żadnych argumentów. Po jego wykonaniu mogą na przykład zostać wyświetlone następujące informacje:
$ who
michals tty02 May 18 18:29
root tty01 May 18 15:18
root tty03 May 18 18:29
burek ttyp1 May 18 17:31
Polecenie who wypisuje dane o każdym zalogowanym użytkowniku w trzech kolumnach. Pierwsza z nich zawiera identyfikator zalogowanego użytkownika. Druga kolumna zawiera nazwę terminalu, którego używa (jest to nazwa urządzenia - temat ten jest omówiony szerzej w rozdziale 33. „Urządzenia”). Ostatnia kolumna zawiera dane o tym, kiedy użytkownik się zalogował.
Jeśli użytkownik jest zalogowany na więcej niż jednej konsoli wirtualnej (konsole wirtualne zostaną omówione w następnym podrozdziale) lub terminalu, wyświetlone zostaną dane o wszystkich sesjach. W poprzednim przykładzie użytkownik root jest zalogowany na dwóch różnych terminalach.
Informacje podawane przez polecenie who są odczytywane za każdym razem, gdy zostanie ono wydane, więc użytkownik zawsze otrzymuje najświeższe dane.
Terminale wirtualne
W systemie Linux może być w danej chwili zalogowany więcej niż jeden użytkownik, a każdy z nich może wykonywać więcej niż jedno zadanie. Poważny system wielozadaniowy posiada zwykle kilka terminali (składających się z klawiatury i monitora), podłączonych poprzez sieć do komputera głównego.
Ponieważ system Linux przeznaczony jest głównie dla komputerów domowych, a mało kto ma w domu kilka terminali, przewidziano możliwość kilkakrotnego zalogowania się za pomocą jednej klawiatury i jednego monitora. Jest to możliwe właśnie dzięki terminalom wirtualnym, nazywanym również konsolami wirtualnymi. Pozwalają one jednej klawiaturze i monitorowi zachowywać się jak kilka (do 12) terminali, identyfikowanych przez klawisze funkcyjne.
Przykładowo, wciśnij kombinację klawiszy Alt+F2. Zawartość ekranu powinna zniknąć, a zamiast niej powinien pojawić się znajomy komunikat:
Welcome to Linux 1.2.13
darkstar login:
Zaloguj się jako zwykły użytkownik (nie jako root), a następnie wydaj polecenie who. Powinno ono podać następujące informacje:
darkstar:~$ who
burek tty2 Dec 14 01:42
burek tty1 Dec 14 01:40
Polecenie who wyświetli dane o wszystkich zalogowanych użytkownikach. Oczywiście zamiast tekstu burek pojawi się nazwa Twojego konta.
Zgodnie z konwencją, tty1 jest główną konsolą systemu. Jest to „normalny” ekran, który jest wyświetlany po uruchomieniu systemu (chyba że od razu uruchamiany jest interfejs graficzny). Jeśli przełączyłeś się na inną konsolę wirtualną, możesz wrócić do konsoli głównej, wciskając Alt+F1.
Jeżeli chcesz sprawdzić, ile konsoli wirtualnych może działać w Twoim systemie, spróbuj kolejno naciskać klawisze Alt+Fx. W niektórych systemach można również użyć kombinacji Alt+Strzałka_w_prawo i Alt+Strzałka_w_lewo. Większość systemów linuxowych uruchamia się, oferując sześć, dziesięć lub dwanaście konsoli wirtualnych. Możesz zmienić tę liczbę, ale w praktyce raczej nie korzysta się z więcej niż trzech lub czterech konsol, więc ustawienia domyślne są wystarczające.
Po co w ogóle używać konsoli wirtualnych? Często zdarza się, że właśnie jesteś w trakcie robienia czegoś bardzo skomplikowanego, gdy okazuje się, że najpierw musisz zrobić coś innego. Wtedy najłatwiej jest przełączyć się na inną konsolę i tam wykonać niezbędne polecenia.
Inne zastosowanie to odblokowanie terminalu w przypadku, gdy jakiś program odmówi posłuszeństwa lub terminal zamiast liter zacznie wyświetlać dziwne znaczki. Można wówczas spróbować rozwiązać problem z innego terminalu lub zamknąć system, jeśli jest to konieczne.
Linux udostępnia również bardzo potężne środowisko wielozadaniowe, jakim jest system X. Instalacja i konfiguracja tego systemu opisana jest w rozdziale 22. „Instalowanie i konfigurowanie XFree86”.
Polecenia i programy
Często zamiast mówić „w wierszu poleceń wpisz who i wciśnij Enter” używa się krótszych wyrażeń, takich jak „uruchom program who”, „wydaj polecenie who” czy nawet „uruchom who”. Oczywiście z kontekstu wynika, że ktoś mówiący, że uruchomił who, ma na myśli, że wpisał w wierszu poleceń who i wcisnął Enter. Istnieje jednak pewna różnica pomiędzy poleceniem a programem. Polecenie to coś, co wpisujesz w odpowiedzi na zachętę generowaną przez interpreter poleceń. Po naciśnięciu klawisza Enter Linux próbuje zanalizować wprowadzony tekst. Niektóre polecenia obsługiwane są przez sam interpreter, inne to po prostu zewnętrzne programy przez niego uruchamiane.
Ujmując rzecz zupełnie ściśle, polecenie jest tym, co wpisujesz, a program to coś, co przetwarza to polecenie. Mimo to proste programy dające od razu wyniki swojego działania, takie jak np. who, często również są nazywane poleceniami, choć tak naprawdę na dysku twardym zapisany jest również program who. Nazwa „program” używana jest raczej w stosunku do aplikacji nieco bardziej rozbudowanych, wymagających współpracy z użytkownikiem, jak choćby program adduser czy edytory tekstów.
Podsumowanie
W tym rozdziale pokazaliśmy, w jaki sposób przypisać hasło użytkownikowi root i założyć nowe konto, którego będziemy używać w kilku następnych rozdziałach. Omówiliśmy również kilka kwestii związanych z terminologią.
Aby dowiedzieć się czegoś więcej o podstawowych poleceniach dostępnych w systemie Linux, przejdź do rozdziału 7. „Podstawowe polecenia Linuxa”.
Interpreter poleceń Bourne Again Shell (bash) opisany jest dokładniej w rozdziale 11.
Rozdział 9. omawia problemy związane z prawami dostępu do plików i sposobami ograniczania dostępu do danych.
Niestety (a może na szczęście?), użycie dyskietki startowej pozwala na zmianę hasła administratora bez jego znajomości (przyp. tłum.).
138 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\06.DOC
E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\06.DOC 121
4 Część II ♦ Poznawanie Linuxa
138 Część II ♦ Poznawanie Linuxa
Rozdzia³ 6. ♦ Od czego zacząć? 131