Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
1. Rodzaje systemów Unixowych – historia powstania i rozwoju. 1.1. Historia powstania UNIX’a. UNIX to pojęcie bardzo wieloznaczne i pojemne. Choć uważa się, że UNIX to „standardowy” system obsługujący wszystko „od mikrokomputerów po superkomputery”, niestety w większości przypadków nie jest to ten sam „standardowy” UNIX. Fakt ten wychodzi dopiero na jaw w przypadku administrowaniem systemem. Aby to zrozumieć należy dokonać krótkiego przeglądu UNIX-owego wszechświata.
AT&T Bell Labs (c 1969 - 1070)
Bezpośredni wpływ Silne oddziaływanie
Wersja 6 (1976) BSD (1977)
Wersja 7 (1979)
XENIX (1979 onward) System 3 (1982)
4.2 BSD (1984)
System V.2 (1984)
4.3 BSD (1985)
System V.3 (1986)
4.4 BSD (1993)
OSF/1 (c. 1992)
System V.4 (1988)
Rysunek 1.1 Genealogia systemu UNIX (w uproszczeniu) Zaprezentowany schemat na rysunku 1.1 (Rys 1.1) przedstawia dzisiejszy stan rzeczy. Bardziej niż chronologię i historyczne fakty, ilustruje on genealogie UNIX-a i wyjaśnia zależności między różnymi rodzinami systemów. Pokazuje on głównie linie rozwoju systemu, którego początek upatruje się w systemie UNIX w wersji 6, który powstał w roku 1975. Od tej chwili w AT&T Bell Laboratories rozwinęły się dwa główne nurty systemu UNIX zwanych jako System V i BSC. Pomiędzy tymi systemami zachodzi jednak wiele związków.
- 1 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Omawiany diagram zawiera również dwie inne odmiany: XENIX i OSF/1. Pierwszy z nich stanowi pierwszą mikrokomputerową wersję systemu UNIX, nadal szeroko rozpowszechnioną i pozostającą w użyciu. XENIX powstał na bazie wersji 7, a stopniowo z biegiem czasu przeobraził się w System V wydanie 2. W 1988 roku Sun i AT&T zdecydowały się wspólnie rozwijać przyszłe wersje Systemu V. W odpowiedzi na to IBM, DEC, Hewlett-Packard i inne firmy komputerowe otworzyły organizację Open Software Foundation (OSF), której głównym celem było stworzenie alternatywnego, zgodnego i niezależnego od AT&T UNIX-owego systemu operacyjnego. W rezultacie tych działań powstał OSF/1. Dzisiejsze wersje systemów wykazują wyraźne dążenia do standaryzacji systemów UNIX. Jednak mimo braku jednolitego standardu producenci mają w zasadzie wolna rękę. Dlatego jeżeli chodzi o administrowanie systemem są widoczne różnice.
1.2. Rodzaje i dystrybucje systemów UNIX’owych. Od wymienionych w poprzednim podrozdziale standardów systemów pojawiły się różne wersje systemów UNIX pokazane na rysunku (Rys 1.2), które w pewnym sensie są zlepkiem swoich oryginałów.
System V.3
BSD
OSF/1
System V.4
SunOS Linux
IRIX DEC OSF/1
SCO UNIX
Solaris AIX
HP-UX 10
Rysunek 1.2 Wersje systemu UNIX SCO UNIX. Określenie to odwołuje się do SCO Open Desktop i SCO Open Server Release 3, będących produktami firmy Santa Cruz Operation, Inc. (działającymi na systemach 486). System ten jest implementacją Y.3.2.5. SCO UNIX będzie często wykorzystywany do prezentacji najbardziej typowych wyników poleceń dla systemów typu System V. System ten zawiera również szereg rozszerzeń, z których niektóre są dosyć ekscentryczne (np. graficzny interfejs użytkownika i administratora). W naszych rozważaniach będę odwoływać się jedynie do tych rozszerzeń, które wnoszą właściwości nie występujące w V.3.2, takich jak na przykład mechanizm_ rozbudowanych zabezpieczeń (który jako taki wziął swój początek w istotnych standardach związanych z bezpieczeństwem). SunOS. Jest to najbardziej znany system typu BSD. Wniósł on do świata UNIX-owego wiele istotnych właściwości (najważniejsza z nich to NFS). Początkowym zamiarem Sun było zastąpienie SunOS systemem Solaris. Ale zapotrzebowanie ze strony rynku spowodowało, że cały czas oferowane są oba wspomniane systemy.
- 2 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Solaris: Jest to opracowana przez Sun implementacja V.4. Aktualnie system ten dostępny jest w wersji Solaris 2.4. System, do którego będziemy się odwoływać w przykładach to Tatung Sparc 10/40, na którym działa Solaris 2.3. Zwróć uwagę, że Solaris 2.x określany jest czasami jako SunOS 5.x. My nie będziemy jednak propagować takiej terminologii. HP-UX. Wersja systemu UNIX oferowana przez firmę Hewlett-Packard, stanowi wariant Systemu V, zawierający wiele cech OSF/1. System HP-UX uległ znaczącym zmianom pomiędzy wersją 9 i 10. Z punktu widzenia administratora systemu HP-UX 9 zachowuje się tak, jak typowy system typu V.3, wzbogacony o kilka rozszerzeń. HP-UX10 natomiast stanowi implementację System V.4. Systemami, do których będziemy się odwoływać w przykładach, jest HP 9000 Model 715 z działającym na nim systemem HP-UX 9 oraz HP 9000 Model 845 z systemem HP-UX 10. Ponieważ w trakcie pisania tej książki właśnie wydany został HP-UX10, postaramy się wskazać najważniejsze różnice w stosunku do wersji 9. W razie potrzeby będę omawiać także różnice systemu HP-UX 9 występujące między seriami sprzętowymi 700 i 800. Digital UNIX. Wersja systemu OSF/1 autorstwa firmy Digital Eąuipment Corporation - jego poprzednia nazwa wprost odnosiła się do źródła i brzmiała DEC OSF/1 - z administracyjnego punktu widzenia wygląda jak BSD, ale jej serce w istocie stanowi System V . Fakt, że zarówno obie wersje systemu HP-UX, jak i Digital UNIX spełniają prawie identyczne standardy, ale administrowane muszą być w zupełnie inny sposób, unaocznia, jak niewielkie znaczenie mają standardy dla administratora systemu. W naszych rozważaniach będziemy się odwoływać do wersji 3.2, działającej na DEC AlphaStation 600. IRIX. Wcześniejsze wersje systemu IRIX zawierały wiele cech systemów BSD, ale na przestrzeni czasu zmieniało się to na korzyść V.4. AIX. Jest to system typu System V firmy IBM. Ma on wiele cech zaczerpniętych z V.4, BSD i OSĘ /l. W naszych rozważaniach będziemy się odwoływać do systemów późniejszych niż AIX 4.1. Podstawowym z nich będzie AIX 4.1.3 działający na RS/6000 Model 590 i 4.1.1 na komputerze Model 250 (Power PC). Większość rozważań odnosi się jednak również do systemów AIX 3.x (cechy występujące dopiero w systemie w wydaniu 4 będą w razie potrzeby zaznaczone wprost). Odwołując się do wydań późniejszych niż 3.2.5, będę po prostu używać terminu „AIX 4". Zwróć uwagę, że wcześniejsze wersje systemu AIX, działające w oparciu o PC AT, odbiegają znacznie od wydania 3.1, przez co nasze rozważania nie będą miały w odniesieniu do nich zastosowania. Linux. Jest to darmowy UNIX-owy system operacyjny dla komputerów z procesorami Intel (inne wersje właśnie są rozwijane). System ten został w całości napisany „od zera" (mówiąc słowami wziętymi wprost z listy najczęściej zadawanych pytań - FAQ). Linux nadal jest popularny, a jego znaczenie bierze się z kilku źródeł: jest niedrogim systemem używanym w środowiskach badawczych, kolegiach i uniwersytetach, stanowi tanie rozwiązanie podłączenia do Internetu dla małych firm, jest domowym systemem UNIX-owym dla profesjonalistów i amatorów oraz można zastosować go jako X terminal w instytucjach o ograniczonym budżecie.
1.3. System operacyjny Linux. Większość serwerów WWW pracuje pod kontrolą Linuxa.(około 33%). Do zdobycia tak silnej pozycji darmowej odmianie Unixa wystarczyło dziesięć lat. Obecnie wielu producentów przygotowuje dystrybucje systemu łatwe w instalacji i konfiguracji. W efekcie Linux jest coraz chętniej instalowany na komputerach domowych i biurowych. Linux jest bezpłatnym systemem operacyjnym - wynika to z licencji GPL. Każdą dystrybucję w wersji podstawowej, razem z jej kodem źródłowym, można pobrać z Internetu lub kupić w cenie nośnika. Producenci dystrybucji zarabiają na sprzedaży dużych pakietów, do których dołączają np. płyty z dodatkowymi aplikacjami i podręczniki. Oferują także płatną pomoc techniczną przy instalacji, konfiguracji i konserwacji systemu. Zdecydowana większość oprogramowania dostępnego dla Linuxa również jest darmowa. Bez ograniczeń możemy np. używać Apache'a lub Sendmaila, nawet w celu prowadzenia płatnego serwisu WWW lub serwera pocztowego. Ponieważ jednak Linux zyskał dużą popularność, wiele firm próbuje czerpać z tego zyski. Niektóre programy, np. MySQL, są dołączane do różnych dystrybucji, ale bezpłatnie mogą być wykorzystywane wyłącznie w celach niekomercyjnych. Z kolei za inne - takie jak pakiet biurowy Applixware - musimy zapłacić. Poza tym istnieją
- 3 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
ograniczone funkcjonalnie, ale za to darmowe edycje komercyjnych programów. Natomiast w wersji pełnej te same pakiety bezpłatne już nie są. Z taką sytuacją mamy do czynienia np. w przypadku WordPerfecta 8. Wprawdzie pod względem polonizacji Windows nadal wyprzedza Linuksa, ale sytuacja ulega ciągłej poprawie. W niektórych dystrybucjach wbudowany jest już instalator w języku polskim. Nie ma także problemów z ustawieniem polskiego układu klawiatury i odpowiedniej strefy czasowej. Zdarza się, że kłopoty sprawiają polskie znaki diakrytyczne. Aby nie oglądać na ekranie charakterystycznych „krzaczków", musimy zainstalować fonty w standardzie ISO 8859-2. Niestety, nie wszyscy producenci zamieszczają odpowiedni pakiet na płycie instalacyjnej. Musimy ponadto pamiętać, że niektóre narzędzia - np. StarOffice i WordPerfect 8 - wymagają oddzielnego skonfigurowania, aby można w nich było przygotowywać polskojęzyczne dokumenty i sprawdzać pisownię. Powinniśmy także liczyć się z niedogodnościami związanymi z koniecznością konwersji znaków przy przenoszeniu dokumentów tekstowych między platformami Linux i Windows. HISTORIA POWSTANIA. Linux został opracowany przez Linusa Torvaldsa. Pierwotnym celem tego młodego fińskiego studenta nie było stworzenie pełnego systemu operacyjnego, a jedynie oswojenie się ze specyficznymi rozkazami procesora 80386, służącymi do przełączania zadań. Do kompilacji swojego programu testowego używał Minixa, dydaktycznego systemu operacyjnego napisanego przez Andrew Tannenbauma, wykorzystywanego do zajęć z systemów operacyjnych. Niestety, z powodu dydaktycznej orientacji Minix miał liczne ograniczenia. Ambitny student szybko wyczerpał możliwości tego uniksopodobnego systemu. Ze swojego testowego programu zaczął rozwijać stopniowo małe jądro pracujące w trybie chronionym procesora 80386, optymalnie wykorzystując dzięki temu możliwości procesora. Po opracowaniu systemu przełączania zadań Linus Torvalds napisał prosty sterownik klawiatury, który umożliwił mu interakcyjną pracę z systemem. W tym czasie Linux wciąż był zależny od części systemu Minix, ale wkrótce miało się to zmienić. Aby uniknąć pisania nowego systemu plików, Linus Torvalds zaadaptował system plików Minixa. Oszczędziło mu to nie tylko wiele pracy, ale także zapewniło od początku stabilny system zarządzania dyskiem twardym. Po kilku miesiącach twórca uznał, że system jest już na tyle dojrzały, aby zaprezentować go większej społeczności. W sierpniu 1991 r. kompletny kod źródłowy Linuxa pojawił się po raz pierwszy na największym fińskim serwerze FTP. Zaprezentowano go jako „rozpowszechniany bezpłatnie klon Minixa", ale w sieci przyciągnął uwagę zaledwie kilku zainteresowanych osób. W październiku została opublikowana następna wersja zawierająca kilka podstawowych poleceń Unixa. Załączony kompilator GNU (gcc) dawał możliwość kompilacji małych programów w języku C, pozwalając na przeniesienie uniksowego interpretatora poleceń (bash). Wczesna decyzja, aby dostosować się do Posixa — rodziny standardów Instytutu Inżynierów Elektryków i Elektroników (ang. Institute of Electrical and Electronics Engineers - IEEE), odegrała decydującą rolę w zapewnieniu przenośności standardowego oprogramowania uniksowego do obecnej wersji Linuxa. Przełom nastąpił 5 stycznia 1992 r., gdy pojawiła się wersja 0.12. Linux miał wtedy wystarczające możliwości do zainteresowania większej grupy programistów. W miarę upływu czasu coraz więcej użytkowników zaczęło przysyłać swoje poprawki i sugestie do Finlandii, uczestnicząc w doskonaleniu systemu Linux. Początkowi projektanci zaopatrzyli tym sposobem system w Posiksowy System Zarządzania Zadaniami (ang. Posix Job Central) w wersji 0.12 oraz przełączalne konsole wirtualne. Jako ważne narzędzie w szybkim rozwoju Linuxa sprawdził się Internet, który jest zbiorem wielu sieci rozległych i „autostrad informacyjnych" łączących ponad milion komputerów na świecie. Daje on możliwość wymiany informacji dowolnego typu. Internet umożliwił twórcom Linuxa wymianę uwag, ulepszeń i programów. W początkowym okresie Linus Torvalds był „bombardowany" ponad 60 listami elektronicznymi dziennie i prawie nie był w stanie przeczytać całej korespondencji i na nią odpowiedzieć. Wkrótce powstało kilka grup dyskusyjnych na temat Linuxa, co zmniejszyło przepływ przesyłek, twórcy Linuxa założyli także pocztowe listy dyskusyjne, pozwalające na podobny do grup nowości sposób wymiany informacji. Oprócz listów i informacji za pośrednictwem Internetu można wymieniać także pliki. Daje to możliwość zorganizowania rozproszonego tworzenia dużych systemów oprogramowania, czego Linux jest bardzo dobitnym przykładem. Szybki przepływ informacji okazał się niezwykłą zaletą, nie tylko dla twórców, ale także dla użytkowników Linuxa. Jeżeli użytkownik napotyka jakiś problem podczas instalacji lub odkrywa błędy w działaniu
- 4 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
systemu, przy odrobinie szczęścia i pomocy Internetu właściwe rozwiązanie może uzyskać w ciągu zaledwie kilku godzin. Nawet komercyjne umowy serwisowe rzadko zapewniają tak dobre usługi. Oczywiście nie każdy użytkownik Linuxa ma dostęp do Internetu, ale nawet wtedy nie jest osamotniony. W wielu BBS-ach założono grupy dyskusyjne na temat Linuxa, więc wystarczy modem, aby być na bieżąco. Ciekawym aspektem historii Linuxa jest fakt, że nigdy nie było ścisłej hierarchii kierownictwa w jakikolwiek sposób zarządzającego pracami. Projekt rozwijał się dzięki entuzjazmowi wielu użytkowników Internetu, stale dostarczających nowych ulepszeń i zgłaszających uwagi. Są oni często profesjonalnymi programistami albo pracownikami wielkich instytucji i poświęcają swój wolny czas na wspieranie rozwoju systemu. Chociaż Linus Torvalds dalej zajmuje się rozwojem jądra, kilka innych kompetentnych osób przejęło pieczę nad różnymi częściami systemu. Dziedziny te to dostosowywanie i pielęgnacja kompilatora GNU C i bibliotek C dla Linuxa, pielęgnacja i adaptacja systemu X Window oraz oprogramowania sieciowego. Inni entuzjaści Linuxa pracują nad dokumentacją dla użytkowników i programistów albo tworzą wersje instalacyjne systemu na dyskietkach lub płytach kompaktowych. Bieżące wersje Linuxa ma wszystkie cechy swoich komercyjnych konkurentów, a dzięki efektywnemu projektowi potrafi wydobyć większą moc z danej konfiguracji sprzętu. Dotyczy to zwłaszcza graficznego interfejsu użytkownika oraz jądra systemu.
2. Budowa Linux’a. 2.1. Model warstwowy. Struktura systemu Linux jest często przedstawiana za pomocą modelu warstwowego (Rys. 2.1.). Jądro systemu Linux zawiera takie elementy, jak program szeregujący oraz programy obsługi urządzeń (ang. device drivers), które umożliwiają dostęp do sprzętu i urządzeń zewnętrznych. W jądrze realizowane jest także zarządzanie pamięcią. Procesy w jądrze różnią się od procesów wykonywanych w warstwie je otaczającej. Zwyczajne procesy użytkowników, którymi zarządza proces szeregujący, mogą być przerwane w dowolnym momencie, a każdy z nich ma przydzielony pewien obszar pamięci. Jeżeli proces użytkownika próbuje dostać się do nie swojego obszaru pamięci, to zostaje przerwany z komunikatem segmentation fault (błąd segmentacji). Bieżąca zawartość pamięci procesu może Błąd segmentacji zostać w takim przypadku zapisana do pliku o nazwie core (zrzut pamięci, ang. core dump). Plik ten może przydać się programiście przy szukaniu błędów.
Jądro Biblioteki Shell Programy
Rys 2.1. Schemat struktury systemu Linux. Inaczej jest w przypadku procesów jądra, które mają dostęp do wszystkich zasobów komputera. Mówimy więc o dwóch trybach, w których może być wykonywany proces: trybie użytkownika oraz trybie jądra. Zewnętrzna warstwa systemu Unix składa się z programów, które kontaktują się bezpośrednio z użytkownikiem. Warstwa ta zawiera interpretator poleceń (ang. command shell), uruchamiający polecenia systemu operacyjnego, oraz programy użytkowe, na przykład do przetwarzania tekstu lub bazy danych. Między zewnętrzną warstwą a jądrem znajdują się różne biblioteki zapewniające dostęp do funkcji bibliotecznych (zwykle napisanych w języku C) oraz do procedur jądra. Biblioteki te są zwykle dołączane do programu po kompilacji przez dodanie procedur bibliotecznych do procedur samego programu.
- 5 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Ponieważ statycznie skonsolidowane programy wymagają dużych obszarów pamięci, współcześni programiści używają zwykle bibliotek współdzielonych (ang. shared libraries), składających się współdzielone z dwóch części. Mała część, zawierająca jedynie odwołania do biblioteki, jest dołączana do programu. Sama biblioteka jest ładowana dopiero w momencie uruchomienia programu. Biblioteki współdzielone umożliwiają wielu programom jednoczesne używanie znajdujących się w nich procedur, co oszczędza pamięć. Inną zaletą jest możliwość wymiany biblioteki współdzielonej na nową wersję bez potrzeby rekonsolidacji korzystających z niej wersji programów, przy założeniu, że procedury w nowej bibliotece mają zgodny ze starą wersją sposób wywoływania.
2.2. Systemy plików. System plików zarządza danymi zapisanymi na dysku. Chociaż każdy system komputerowy ma taki mechanizm, mogą się one jednak znacznie różnić. Współczesny system plików ma strukturę hierarchiczną. Użytkownik może umieszczać pliki w różnych katalogach ułatwiając sobie ich przeglądanie, a odwołuje się do nich za pomocą ścieżek. Inaczej niż DOS, Unix wykorzystuje znak ukośnika (/) jako separatora w ścieżkach. W systemie Unix ścieżki mogą być podawane bezwzględnie (ze znakiem / na początku) albo względem katalogu bieżącego. Katalog domowy użytkownika ma tu szczególne znaczenie. Przechowywane są tutaj wszystkie dane prywatne. Jest to także miejsce, w którym znajduje się użytkownik po zalogowaniu. DOS adresuje napędy dyskowe i partycje dysków twardych za pomocą liter. Unix łączy je wszystkie w jeden system plików i nie przypisuje im oddzielnych oznaczeń, co oznacza, że użytkownik nie może rozróżnić oddzielnych dysków i partycji. Wydaje się, że istnieje tylko jeden wielki dysk z pojedynczym systemem plików. Problemy pojawiają się przy zarządzaniu dyskietkami i innymi wymiennymi nośnikami, ponieważ nie znajdują się one na stałe w napędzie. Zanim możliwy będzie dostęp do wymiennego nośnika, musi on być dołączony do systemu (ang. mount). Zarządzanie plikami i wolnymi blokami różni się zasadniczo w systemach DOS i Unix. DOS tworzy tablicę alokacji plików - FAT (ang. File Allocation Tuble) na każdym dysku w celu zapisywania na nią wolnych i zajętych sektorów. Inny sektor zawiera katalog główny. Oprócz nazw plików w katalogu dosowym znajdują się także ich atrybuty, takie jak rozmiar czy data. W systemie Unix natomiast każdemu plikowi jest przydzielony i-węzeł (ang. i-node), w którym są zapisane najważniejsze atrybuty, takie jak nazwa, prawa dostępu i adres pierwszego bloku. W katalogach są więc jedynie odwołania do odpowiednich i-węzłów. Ponieważ jest to jednocześnie bardziej ekonomiczne pod względem ilości miejsca i bardziej efektywne przy dostępie, więc struktura taka jest lepiej przystosowana do zarządzania większymi systemami plików niż FAT.
2.3. Zarządzanie pamięcią. Zarządzanie pamięcią we współczesnych systemach Unix różni się zasadniczo od stosowanego w prostszych systemach operacyjnych, takich jak DOS. Linux wykorzystuje mechanizm zarządzania pamięcią wirtualną, tzn. że system operacyjny wydaje się zapewniać więcej pamięci operacyjnej niż ma w rzeczywistości do dyspozycji. Metoda wykorzystywana do implementacji pamięci wirtualnej w systemie Linux jest nazywana stronicowaniem (ang. paging). Za pomocą specjalnych tablic system operacyjny odwzorowuje dużą logiczną przestrzeń adresową w mniejszą fizyczną. Kiedy proces żąda większej ilości pamięci niż jest fizycznie dostępnej, pojedyncze strony pamięci logicznej, do których nie było ostatnio odwołań, są przenoszone na dysk. Kiedy program sięga do adresu logicznego znajdującego się właśnie na dysku, odpowiedni segment pamięci, nazywany stroną (ang. page), jest umieszczany w pamięci głównej, podczas gdy inny musi być dla równowagi zapisany na dysk. Z powodu znacznie dłuższego czasu dostępu do dysku w porównaniu z czasem dostępu do pamięci operacyjnej, szybkość działania zmniejsza się. Aby umożliwić wykorzystanie dysku przy zarządzaniu pamięcią wirtualną oraz logiczną pamięcią operacyjną, muszą być na nim utworzone pliki lub partycje wymiany. Bez takich plików lub partycji pamięć operacyjna jest ograniczona do rozmiaru pamięci fizycznej.
- 6 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
3. Administrowanie systemem sieciowym na przykładzie Linux’a. Aby móc administrować systemem należy stać się superużytkownikiem. Jest to uprzywilejowane konto zapewniające nieograniczony dostęp do wszystkich plików i poleceń systemowych. Takie konto nazywa się root. Superużytkownikiem można się stać albo przez rozpoczęcie sesji na koncie root ( co nie jest zalecane), albo przez wydanie polecenia su w trakcji pracy na innym koncie. Po wydaniu takiego polecenie użytkownik zostaje poproszony o podanie hasła dla konta root. Jeżeli zostanie wprowadzone poprawne hasło, system wyświetli znak #. $ su Password: Nie pojawia się w trakcie pisania # Pracę na koncie superużytkownika możesz zakończyć używając polecenia exit lub wciskając kombinację klawiszy [Ctrl+D]. Użycie polecenia su powoduje powołanie nowego shella, który dziedziczy środowisko bieżącego interpretatora poleceń. Aby zasymulować rzeczywiste rozpoczęcie sesji jako root, należy wydać polecenie su -. Za pomocą polecenia su możliwe jest też uruchamianie jako root pojedynczych poleceń. Aby to uczynić wydaje się polecenie: $ su root –c „polecenie” gdzie polecenie należy zastąpić pełnym poleceniem zamierzonym do wykonania jako root.
3.1. Zainstalowanie systemu i poprawna jego konfiguracja. 3.1.1. Przygotowanie dystrybucji do zainstalowania. Aby uruchomić program instalacyjny, Red Hat może załadować jądro Linuksa (kernel) z jednego z dwóch dostępnych nośników danych: dyskietki lub płyty CD-ROM. Możliwość uruchomienia kernela z dysku CD-ROM istnieje jednak tylko w przypadku, gdy BIOS komputera potrafi obsługiwać taką opcję. W BlOS-ie należy odnaleźć odpowiednią funkcję, pozwalającą zadeklarować napęd CD-ROM jako pierwszy dysk startowy. Jeżeli nasz komputer nie umożliwia startu bezpośrednio z CD, pozostają nam dwa wyjścia. Możemy włączyć komputer w trybie MS-DOS, a następnie przejść do katalogu /dosutils i uruchomić plik wsadowy autoboot.bat. Zostanie załadowane jądro Linuksa i dalej instalacja będzie przebiegać tak jak po bootowaniu komputera bezpośrednio z płyty CD. Ostatnią metodą uruchomienia instalatora systemu jest utworzenie specjalnej dyskietki bootującej dzięki obrazom znajdującym się w katalogu Images – są to: bootimg, bootnet.img i pcmcia.img. Red Hata 7.1 można zainstalować z różnych źródeł: z płyty CD, dysku twardego lub korzystając z usług sieci komputerowej (FTP, HTTP, NFS bądź Samba). W zależności od tego, czy będziemy korzystać z wersji instalacyjnej znajdującej się lokalnie czy też pliki będą pobierane poprzez sieć komputerową, użyjemy dyskietki stworzonej z obrazu boot.img lub bootnet.img. Do instalacji z napędu CD konieczna jest pierwsza dyskietka. Jeżeli nasz komputer korzysta z urządzeń peryferyjnych za pomocą złącza PCMCIA (laptopy), dodatkowo powinniśmy utworzyć dyskietkę ze źródła pcmcia.img. Do spreparowania dyskietek służy program Rawrite znajdujący się w katalogu Dosutils. Po jego uruchomieniu należy podać nazwę obrazu dyskietki oraz katalog, gdzie się on znajduje, na przykład x:\images\boot.img (gdzie x – to litera CD-ROM-u), a następnie napęd, do którego włożyliśmy czystą dyskietkę 1,44 MB (np. a:).
3.1.2. Defragmentacja i podział twardego dysku na partycje. Red Hat wymaga przynajmniej dwóch partycji: wymiany (swap) oraz native. Większość użytkowników będzie musiała zmodyfikować rozmiary partycji swojego dysku twardego, aby wygospodarować miejsce na nowy system operacyjny. Najpopularniejszym narzędziem służącym do tego celu jest PartitionMagic. Jest to jednak aplikacja komercyjna. Każda niemal dystrybucja zawiera bezpłatny, funkcjonalny odpowiednik Partition Magica FIPS (First nondestructive Interactive Partition Splitting program). Należy pamiętać, że przed każdą ingerencją w strukturę dysku należy sporządzić kopię danych znajdujących się na dysku. Rezultatem błędu - naszego lub programu do zmiany partycji - może być utrata wszystkich danych! Stratę czasu poświęconą na wykonanie kopii zapasowej można łatwo wyliczyć, trudno natomiast przewidzieć szkody powstałe w wyniku uszkodzenia partycji. FIPS umożliwia wydzielenie z dużej partycji DOS-owej mniejszej, pustej. Przed zmianą układu partycji na dysku należy zadbać o to, aby dane przeznaczone dla DOS-u znalazły się w jej pierwszej części, a część
- 7 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
przeznaczona na partycje linuksowe została pusta. Do tego celu można wykorzystać dowolny program, służący do defragmentacji dysku. Niektóre programy przeznaczone do tworzenia kopii zapasowych umieszczają plik kopii w ostatnim bloku systemu plików DOS-a. W takim przypadku radzę zajrzeć do dokumentacji programu FIPS. Podobnie powinni postąpić posiadacze OS/2. Dystrybucja RH 7.1 zawiera FIPS-a w stabilnej wersji 2.0, obsługującej również partycje FAT32. Program FIPS znajduje się w katalogu Dosutils na dysku CD-ROM zawierającym dystrybucję Red Hata. FIPS nie może działać w środowisku wielozadaniowym, jakim jest np. Windows 9x, gdyż nie ma gwarancji, że inny program nie odwoła się do dysku twardego, którego system plików jest w tym momencie zmieniany. Aby uniknąć takiej sytuacji, należy przejść do trybu MS-DOS, wybierając z menu Start polecenie Zamknij system i opcję Uruchomić ponownie w trybie MS-DOS, lub też uruchomić komputer bezpośrednio w DOS-ie. Po uruchomieniu programu FIPS wyświetlane są dane dotyczące wszystkich partycji w komputerze. Określamy rozmiar, jaki chcemy pozostawić dla partycji DOS-u, po czym zapisujemy ustawienia i ponownie uruchamiamy komputer. FIPS tylko dzieli istniejące partycje, nie tworzy zaś nowych. Operacja tworzenia partycji używanych przez Linuksa przeprowadzona zostanie dopiero podczas jego instalacji. Po ponownym uruchomieniu komputera z dyskietki startowej (boot) bądź z dysku CD-ROM pojawia się proste menu, za pomocą którego określamy tryb instalacji. Jeśli wciśniemy klawisz [Enter], program spróbuje rozpoznać używaną kartę graficzną i myszkę, a następnie uruchomi instalator graficzny. Jeżeli mamy nietypową kartę, powinniśmy w linii zachęty wpisać słowo text i również nacisnąć klawisz [Enter]. Ostatnim trybem instalacji jest expert, używany bardzo rzadko i wymagający od użytkownika pewnej wiedzy i doświadczenia. W przypadku większości popularnego sprzętu wystarczy zwykły tryb, aby instalacja zakończyła się sukcesem. Po naciśnięciu klawisza [Enter] do pamięci zostaje załadowane jądro systemu, a następnie na ekranie pojawiają się komunikaty dotyczące wykrytych podzespołów komputera. Do pracy wkracza program instalacyjny Red Hata, który krok po kroku przeprowadzi użytkownika przez cały proces instalacji. Na każdym etapie możliwy jest powrót do poprzedniego kroku w celu dokonania odpowiednich poprawek.
Rys 3.1. Wybór języka w programie instalacyjnym Linux,a (dystrybucja RedHat). W pierwszej kolejności program instalacyjny poprosi użytkownika o wybór języka narodowego, w którym ma pracować interfejs instalatora (w wersji Red Hat 7.1 nie jest dostępny język polski w interfejsie instalatora) (Rys. 3.1.). Kolejnym krokiem jest zdefiniowanie modelu i układu klawiatury. Później określamy typ myszki (Rys. 3.2.).
- 8 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Rys 3.2. Zdefiniowanie urządzeń peryferyjnych w programie instalacyjnym Linux,a (dystrybucja RedHat). Teraz możemy wybrać sposób konfiguracji systemu (Rys. 3.3.). Pierwsze dwa typy to Gnome workstation i KDE workstation. Zainstalowane zostaną aplikacje typowe dla stacji roboczej: programy graficzne, edytory tekstu itp. Obie konfiguracje różnią się pulpitem dla X Window. Do wyboru mamy dwa konkurencyjne rozwiązania: KDE i Gnome. W trakcie instalacji typu Server zainstalowane zostaną przede wszystkim serwery usług sieciowych: sendmail, bind itp. (Uwaga!!! Jeżeli wybierzemy typ instalacji Workstation, usunięte zostaną wszystkie partycje linuksowe z dysku. Jeśli zdecydujemy się na Sewer, wówczas instalator skasuje wszystkie istniejące partycje na dysku - nie tylko linuksowe). Możemy również wybrać czwarty typ instalacji - Custom. W tym przypadku sami określamy liczbę i wielkość partycji oraz aplikacje, które mają być zainstalowane. Ponadto jeżeli mamy już zainstalowanego Red Hata w wersji wcześniejszej, możemy uaktualnić system.
Rys 3.3. Wybór konfiguracji systemu w programie instalacyjnym Linux,a (dystrybucja RedHat).
- 9 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Przystępujemy do założenia partycji linuksowych. Należy się zastanowić, ile partycji potrzebujemy oraz ile miejsca chcemy na nie przeznaczyć. Konieczne jest założenie partycji wymiany (ang. swap), służącej do zapisywania nie wykorzystywanych procesów. Jej wielkość jest uzależniona od liczby aplikacji, które zamierzamy uruchamiać jednocześnie. Najczęściej stosowana reguła mówi, że wielkość partycji wymiany powinna być dwa razy większa od ilości posiadanej pamięci RAM. Liczba partycji oraz ich wielkość jest ściśle związana ze strukturą systemu plików Linuksa. W katalogu /usr instalowane są wszystkie aplikacje oraz kody źródłowe programów standardowo znajdujących się w Red Hacie (jeśli je również zainstalujemy). Jeżeli użytkownik zdecyduje się na wydzielenie osobnej partycji na ten katalog, to powinna mieć ona wielkość między 300 a 700 MB. W katalogu /var znajdują się między innymi logi systemowe oraz poczta elektroniczna użytkowników. Umieszczenie tej kartoteki na osobnej partycji zapobiega zapełnieniu całego dysku przez nadmiernie rozrastające się pliki, dzięki czemu unikniemy sytuacji, gdy niemożliwe będzie prawidłowe funkcjonowanie serwera. W ekstremalnym przypadku, jakim jest serwer grup dyskusyjnych, w katalogu /var może się znaleźć ponad 500 MB danych. Z podobnych względów warto pomyśleć nad założeniem kolejnej partycji na katalog /tmp, który zawiera pliki tymczasowe. Z punktu widzenia użytkowników najistotniejsza jest kartoteka /home, mieszcząca ich katalogi domowe. Zalety wydzielenia miejsca na /home na osobnej partycji docenimy w przypadku awarii systemu lub podczas jego aktualizacji. Nasze dane pozostaną wtedy nienaruszone. Podane wyżej wartości są orientacyjne. Dokładne zapotrzebowanie na miejsce na dysku można określić dopiero po obserwacji działającego systemu. Jeśli po jakimś czasie dana partycja zostanie zapełniona, to nie należy wpadać w panikę. Wystarczy dołączyć do systemu nowy dysk twardy, podzielić go i sformatować, a następnie przekopiować dane z przepełnionej partycji na nowy dysk. Następnie trzeba go zdefiniować w miejsce starej partycji. Nie ma też problemu z literami napędów znanymi z DOS-u czy Windows, ponieważ Linux nie wykorzystuje oznaczeń literowych do określania napędów. W trakcie zakładania partycji należy pamiętać o jednej żelaznej zasadzie. Aby system mógł się prawidłowo uruchamiać z dysku twardego, jego jądro musi znajdować się poniżej 1024 cylindra dysku twardego. Jeżeli dysponujemy dużym dyskiem twardym i zamierzamy zainstalować Linuksa na jego końcu, to musimy posłużyć się pewnym trickiem. Zakładamy niewielką partycję (do 20 MB) poniżej 1024 cylindra dysku i na niej umieszczamy katalog /boot, w którym zapisane jest jądro systemu. Pozostałe partycję Linuksa mogą się mieścić w dowolnym miejscu dysku. Instalator Red Hata 7.1 oferuje graficzną wersję Disk Druida, który za pomocą kilku ruchów myszką pozwala na dodanie nowych partycji oraz skojarzenie ich z odpowiednimi katalogami w strukturze plików systemu. Na przykład jeśli zdecydowaliśmy się na utworzenie dwóch partycji native hda2 i hda3, to możemy na partycji hda2 zamontować główny system plików /, a na hda3 katalog użytkowników, czyli /home. Jeżeli zdecydowaliśmy się na utworzenie tyłki jednej dużej partycji native, wówczas po dajemy jedynie /. Jądro Linuks-a potrafi obsłużyć nie tylko swój system plików, czyli ext2, ale także inne, takie jak msdos, vfat, a także FAT32. Partycję innych typów można zamontować już na etapie instalacji Linuksa, podając ich punkt montowania jako np. /mnt/dyskc i /mnt/dyskd Po podzieleniu dysku oraz podaniu punktów montowania katalogów systemowych instalator poprosi o potwierdzenie, które partycję mają być formatowane. Jeśli spodziewamy się, że dysk mc że zawierać uszkodzenia, należy dodatkowo wybrać opcję wyszukiwania błędnych miejsc.
3.1.3. Instalowanie programu ładującego systemu (LILO). Następnie instalator zapyta o informacje związane z przyszłym uruchamianiem systemu (Rys. 3.4.). Decydujemy, czy ma być utworzona dyskietka startowa, przydatna po ewentualnej awarii systemu. Ustalamy też, gdzie ma się znaleźć bootloader systemu, czyli LILO (Linux Loader). Do dyspozycji mamy dwa rozwiązania. Po pierwsze, można umieścić go w MBR (Master Boot Record). Rozwiązanie to ma jedną wadę. W momencie przeinstalowania innego systemu (np. Windom 9x) informacja w MBR zostanie zamazana. Dlatego też w przypadku współdzielenia dysku przez różne systemy operacyjne zaleca się skorzystanie z drugi metody, czyli umieszczenia LILO w pierwszym sektorze partycji linuksowej, na której zamontowany jest głowi system plików (/). Wówczas konieczne jest jeszcze ustawienie tej partycji jako aktywnej, na przykład za pomocą programu fdisk w wersji DOS-owej lub linuksowej. Jeśli w przyszłości zajdzie konieczność przeinstalowania systemu Windows 9x na dysku C:, aby z powrotem korzystać z Linuksa, należy ponownie ustawić partycję linuksową jako aktywną. Podobnie, jeśli zrezygnujemy z używania Linuksa, wystarczy ustaw jako aktywną tę partycję, z której startuje Windows. Jeśli usuwamy Linuka, a LILO znajduje się w MBR, należy o świeżyć jego zawartość, uruchamiaj DOS-owy program fdisk z parametrem /MBR. Na tym etapie instalacji wybieramy również, który system zainstalowany na dysku ma się uruchamiać domyślnie.
- 10 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Rys 3.4. Podanie hasła administratora w programie instalacyjnym Linux,a (dystrybucja RedHat). Jeżeli instalator wykrył kartę sieciową, konfigurujemy ustawienia zwiążą z siecią. Dane potrzebne do jej konfiguracji otrzymamy od administratora. Niezbędna będzie nam nazwa komputera, domeny, w której działa nasz komputer jak również numer IP, maska sieci (ang. netmask), adres bramki (ang. gatew) oraz adresy serwerów DNS. Jeśli dane uzyskujemy za pomocą serwera DHCP, wówczas nie musimy ich podawać. Informacje te można później korygować w plikach /etc/sysconfig/network oraz /etc/resolv.conf. W dalszym kroku wybieramy strefę czasową, w której się znajdujemy - Europe/Warsaw. Ustawienia te są ważne szczególnie w trakcie konfigurowania serwera pocztowego, gdyż w każdym nagłówku listu znajduje się data i czas nadania.
Rys 3.5. Podanie hasła administratora w programie instalacyjnym Linux,a (dystrybucja RedHat).
- 11 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Kolejnym etapem jest podanie hasła administratora – roota (Rys. 3.5.). Ponieważ konto root służy do zarządzania systemem, a nie do pracy, instalator wymusza również założenie zwykłego konta. Później trzeba skonfigurować opcje związane z bezpieczeństwem systemu haseł. Pierwsza opcja umożliwia stosowanie haseł 256znakowych. Jeżeli włączymy tzw. shadow passwords, wówczas hasła użytkowników znajdą się w pliku niedostępnym dla nikogo oprócz administratora.
3.1.4. Wybranie i zainstalowanie potrzebnych pakietów oprogramowania. Teraz przyszedł czas na wybranie aplikacji, które mają być zainstalowane. Należy zastanowić się, do jakich celów będzie służył system. Jeżeli ma pełnić funkcję typowego domowego środowiska pracy, można pominąć instalację oprogramowania typowo sieciowego, które nie zostanie nigdy użyte, a jedynie będzie zabierało, niekiedy cenne, miejsce na dysku. I odwrotnie, w konfiguracji systemu używanego jako router, serwer pocztowy lub DNS zbędna wydaje się instalacja zaawansowanych narzędzi programistycznych czy też edytorów tekstów. Selekcji pakietów można dokonać na kilka sposobów (Rys. 3.6.). Możemy wybierać spośród grup tematycznych, na które podzielone są programy. Inna metoda to wybór poszczególnych pakietów. Jeśli naszym ulubionym programem pocztowym jest pine, nie musimy instalować elma. Dokonywanie wyborów ułatwia nam krótki opis każdego elementu, dostępny po wciśnięciu klawisza [Fl]. Ostatnia możliwość jest przeznaczona dla osób nie liczących się z miejscem na dysku - można po prostu zainstalować wszystkie pakiety.
Rys 3.6.
Wybór grup tematycznych pakietów instalacyjnych w programie instalacyjnym Linux,a (dystrybucja RedHat).
Czasami po zakończeniu selekcji okazuje się, że nie wybraliśmy jakiegoś komponentu niezbędnego do funkcjonowania któregoś programu. Instalator zaproponuje zainstalowanie także brakujących pakietów. Następnie ustawiamy parametry środowiska graficznego X-Windows (Rys 3.7.). Choć program instalacyjny wykrywa automatycznie większość popularnych kart graficznych i monitorów może zajść konieczność podania ważniejszych parametrów tych urządzeń tj. ilości pamięci zamontowanej w karcie grafiki, rozdzielczości i częstotliwości odświeżania ekranu prędkości w której chcemy pracować. Zawsze przed przejściem do następnego etapu należy przetestować ustawienia środowiska graficznego. Później rozpoczyna się instalacja poszczególnych pakietów. W zależności od szybkości posiadanego sprzętu oraz liczby wybranych komponentów proces ten może trwać od kilku do kilkudziesięciu minut. Po skopiowaniu wszystkich składników instalator tworzy dyskietkę startową (jeśli zdecydowaliśmy się ją utworzyć).
- 12 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Rys 3.6. Okno ustawień tryby graficznego w programie instalacyjnym Linux,a (dystrybucja RedHat). Teraz instalacja jest zakończona i możemy ponownie uruchomić komputer. Gdy zobaczymy na ekranie napis LILO:, naciskamy klawisz [Enter]. Zostanie wówczas uruchomiony system ustawiony jako domyślny podczas instalacji. Jeśli naciśniemy [Tab], zobaczymy listę dostępnych systemów. Jeżeli komputer uruchomił się pod Linuksem, na ekranie będą wyświetlane liczne komunikaty systemowe, dotyczące sterowników i uruchamianych programów. Program będzie monitował o wprowadzenie hasła administratora, którego identyfikatorem jest słowo root. Hasło to podaliśmy podczas instalacji systemu. Tylko tzw. root (administrator) ma uprawnienia do dokonywania zmian w konfiguracji systemu, dlatego też nie należy wykorzystywać tego konta w normalnej pracy codziennej. Należy pamiętać, aby nigdy nie zostawiać otwartej sesji roota bez nadzoru i zamykać ją zaraz po zakończeniu pracy. Pamiętajmy również o tym, że skoro Linux rozpoznaje wielkość liter, to konta Stefan i stefan będzie traktował jako dwóch, niczym ze sobą nie powiązanych, użytkowników.
3.2. Zainstalowanie potrzebnego oprogramowania i zarządzanie aplikacjami. 3.2.1. Wybór i instalacja oprogramowania. Kompilowanie programów - polecenie make Program make umożliwia automatyzacje procesu kompilacji i łączenia programów. Jeśli kod źródłowy danego programu zawiera plik Makefile - i jeśli z dokumentacji wynika, że jest on zgodny z systemem Linux wówczas skompilowanie i uruchomienie tego programu nie powinno nastręczyć poważniejszych trudności. Oto składnia polecenia make: make
Za pomocą make nietrudno jest zautomatyzować, oprócz samej kompilacji, również instalację i konfiguracje programu, make działa w oparciu o tak zwane zależności, co oznacza, że wykonanie pewnych czynności zależy od wcześniejszego wykonania innych. Można w związku z tym zażądać najpierw przeprowadzenia kompilacji programu, a następnie uruchomienia jego skryptu instalacyjnego. make posiada wbudowany zbiór parametrów domyślnych. Zbiór ten nosi nazwę reguł domyślnych, określających na przykład, że pliki z rozszerzeniem .c powinny być kompilowane przez kompilator C, pliki z rozszerzeniem .cc przez kompilator C++ itp. Większość reguł domyślnych jest zgodna z intencjami współczesnych programistów.
- 13 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Przykładowo, aby skompilować program mojprogram.c, należy wpisać: gcc -o mojprogram mojprogram.c Polecenie to jest stosunkowo długie i wpisywanie go może okazać się uciążliwe, nawet biorąc pod uwagę ułatwienia udostępniane przez shell bash (np. historię poleceń). Wpisanie make mojprogram byłoby - rzecz jasna - o wiele prostsze. Programista nie musi martwić się o to, w jakim języku jest napisany jego program, ponieważ make odpowiednio skonfigurowany przez administratora będzie wiedział o wszystkich kompilatorach dostępnych w systemie i wybierze odpowiedni do danego zadania. Jeśli jesteśmy administratorami, możemy przerzucić obowiązek skonfigurowania make na jego skrypt instalacyjny. Jedną z wad korzystania z make w opisany wyżej sposób jest trudność kompilowania a jego pomocą programów składających się z wielu plików (programów takich jest bardzo dużo). Innym problemem jest fakt nieudostępniania przez make kontroli nad opcjami optymalizacji kompilatora, co może znacząco wpłynąć na wydajność programu. make potrafi obsługiwać opcje optymalizacyjne oraz źródła składające się z wielu plików; aby jednak skorzystać z tych możliwości, programista musi napisać własny plik Makefile. Opcje make Czasami do skompilowania programu wystarczy wpisanie samego polecenia make. Po uruchomieniu, make stara się odnaleźć w bieżącym katalogu plik o nazwie Makefile (należy zwrócić uwagę na duże „M") i odczytać z niego dalszy plan działania. Następnie make przystępuje do wykonania pierwszego polecenia wyszczególnionego w pliku Makefile. Konwencja mówi, że polecenie to powinno skompilować program, ale nie instalować go w systemie (nie udostępniać użytkownikom). Powód jest prosty: jeśli pracując na koncie administratora wpiszemy make, prawdopodobnie będziemy chcieli uniknąć sytuacji, w której nasz katalog domowy zostałby zaśmiecony nowymi, nie działającymi jeszcze programami. Typowa instalacja programu Po wydaniu polecenia make należy uruchomić program, sprawdzić, czy działa i odpowiednio go skonfigurować. Następnie można użyć wyrażenia make install, co spowoduje umieszczenie plików wykonywalnych w odpowiednich miejscach na dysku. Należy pamiętać o zaznajomieniu się z dokumentacją kompilowanych programów. W przeciwnym razie ich działanie może okazać się niepożądane; czasem prowadzi nawet do utraty istotnych danych. make install Polecenie make install nakazuje make skompilować program i jeśli kompilacja zakończy się sukcesem umieścić jego pliki wykonywalne i konfiguracyjne w odpowiednich katalogach z odpowiednimi prawami dostępu, umożliwiając ich wykorzystywanie przez użytkowników systemu. configure Duże programy, wyposażone w znaczną liczbę konfigurowalnych opcji, zazwyczaj zawierają dodatkowy moduł - configure - służący do ustalenia wstępnej konfiguracji przed uruchomieniem make i make install. O ile tylko w dokumentacji jest napisane, że program obsługuje opcję configure, należy z niej skorzystać, wpisując make configure lub make config, w zależności od rodzaju programu. stałe make umożliwia również zdefiniowanie własnych stałych dla kompilowanego programu. Wersje beta dystrybucji (oraz dystrybucje, w których nie poświęcono zbyt wiele czasu na utworzenie pliku Makefile) czasem wymagają zdefiniowania odpowiednich stałych w celu przeprowadzenia kompilacji. clean Na koniec, większość plików Makefile potrafi „posprzątać po sobie". Duże programy często tworzą sporo plików tymczasowych w swoich katalogach źródłowych. Aby wykasować te pliki lub posprzątać po nieudanej próbie instalacji programu, należy wpisać make clean. Opcja ta powinna również zostać uruchomiona po zmianie konfiguracji programu (na przykład po make config).
- 14 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
3.2.2. Zarządzanie pakietami w celu optymalizacji pracy systemu. Jednym z najlepszych i najnowszych programów dostępnych w Red Hat Linuksie jest rpm - administrator pakietów. Można go swobodnie wykorzystywać do instalowania, usuwania, unowocześniania, przepytywania, testowania i tworzenia pakietów oprogramowania. Pakiet oprogramowania utworzony za pomocą rpm składa się ze zarchiwizowanego Pliku i kilku przypisanych do niego informacji, takich jak: nazwa, numer wersji i krótki opis. Poniżej kilka zalet pakietów rpm, które stanowią o ich przewadze w stosunku do tradycyjnej (tar.gz) metody rozprowadzania nowego programowania: Unowocześnianie - nowa wersja oprogramowania może zostać zainstalowana bez utraty plików konfiguracyjnych zawartych w starej wersji. Usuwanie (odinstalowywanie) oprogramowania - pakiet oprogramowania instalujący się w kilku miejscach jest całkowicie usuwany z systemu. Testowanie - po zainstalowaniu pakiet zostaje przetestowany pod kątem poprawności działania. Przepytywanie - stosunkowo łatwo jest uzyskać informację, do jakiego pakietu należy dany plik. ! Instalacja pakietów
rpm –i [opcje] [pakiety] rpm –i –v –h kernel-2.0.30-3.i386.rpm
Opcje: -v -h lub -hash --procent --test
wyświetla na ekranie informację o działaniu rpm gdy pakiet zostanie już zainstalowany, wyświetla 50 znaków # informuje, ile procent plików zostało już rozpakowanych z pakietu. uruchamia instalację pakietu, niczego jednak nie instaluje (opcja służy w praktyce do sprawdzania, czy oprogramowanie nie wywoła konfliktów w systemie) --oldpackage pozwala na zastąpienie starszej wersji pakietu wersją nowszą ! Unowocześnianie wersji pakietów ! Deinstalacja pakietów Opcje: --allmatches --test
rpm –U [opcje] [pakiety] rpm –U –h –v emacs-19.34-4.i386.rpm
rpm –e [opcje] rpm –e dosemu rpm –e dosemu-0.64.1-1.i386.rpm
(dobrze) (błąd)
usuwa wszystkie wersje pakietu odpowiadające nazwie_pakietu uruchamia deinstalację pakietu, niczego jednak nie deinstaluje (opcja służy w praktyce do sprawdzania, czy wszystko przebiega pomyslnie)
! Przepytywanie pakietów
rpm –q [opcje] [pakiet] rpm –q kernel
Opcje: -a wyświetla listę wszystkich zainstalowanych pakietów -c podaje listę wszystkich plików konfiguracyjnych pakietu -d podaje listę wszystkich plików oznaczonych jako dokumentacja pakietu -f f ile (plik) podaje nazwę pakietu będącego właścicielem danego pliku -i wyświetla kompletne informacje o pakiecie -l wyświetla listę wszystkich plików należących do pakietu -p package (pakiet) podaje nazwę pakietu. -s podaje bieżący status plików wchodzących w skład pakietu
- 15 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
3.3. Zarządzanie systemami plików i danymi. 3.3.1. Montowanie i odłączanie systemów plików. ! mount [–t typ] [opcje] [urządzenie] [miejsce_zamontowania] mount –t ext2 /dev/sda4 /mnt/zipext2 umount /mnt/zipext2 Umożliwia dołączenie systemu plików do drzewa katalogów System plików jest dołączany do uniksowego drzewa katalogów w zdefiniowanym miejscu zamontowania Parametry nieokreślone są brane z pozycji w pliku /etc/fstab. Opcje: -a automatyczne montowanie wszystkich systemów określonych w pliku /etc/fstab -f brak wywołania funkcji systemowej mount (przydatne z opcją -v) -n zamontowanie bez umieszczania pozycji w pliku /etc/mtab -o opcje dodatkowe opcje zależne od odpowiedniego systemu plików Systemy plików rozpoznawane przez polecenie mount : TYP affs coherent extfs ext2fs hpfs iso9660 minix msdos nfs proc romfs smbfs Swap sysv ufs umsdos vfat xenix xiafs
NAZWA System Amigi System Coherent UNIX Rozszerzony system plików dla Linuksa, następca systemu minix (przestarzały) Drugi rozszerzony system plików dla Linuksa (aktualnie wykorzystywany) System OS/2 (tylko do odczytu) System CD-ROM (tylko do odczytu) Pierwotny system plików dla Linuksa (przestarzały) System MS-DOS Sieciowy system plików Sun Microsystems System Linux Process Information Pamięciowy system plików (tylko do odczytu; dla systemów osadzonych) Sieciowy system Session Message Błock System linuksowych partycji wymiany System UNIX-a w wersji System V System UNIX-a w wersji BSD System obsługujący współistniejące pliki Linuksa i DOS-a System MS Windows System Xenix Linuksowy system plików (przestarzały; nieobsługiwany przez jądra 2.1.21 i późniejsze)
3.3.2. Konfiguracja systemu plików. Filesystem Manager Red Hat Linuksa. Konfigurację systemów katalogów w pliku /etc/fstab można bardzo łatwo ustawić za pomocą programu Filesystem Manager, dostępnego poprzez Panel sterowania Red Hat Linuksa (można go również wywołać z klawiatury wpisując: fstool). Program ten będzie działał tylko pod XWindow. Po uruchomieniu fstool, na ekranie pojawia się okno z listą zawartości pliku /etc/fstab. Każdy wiersz zawiera nazwę urządzenia, punkt zaczepienia, typ systemu plików, rozmiar, przestrzeń zajętą przez pliki i przestrzeń dostępną jeszcze w danym systemie. Poza tym, każdy zamontowany system plików oznaczony jest gwiazdką. Przycisk Info dostarcza dodatkowych informacji na temat podświetlonego systemu plików (tych samych informacji, które znaleźć można w pliku /etc/fstab i które uzyskać można poleceniem df). Systemy plików można montować i odłączać za pomocą przycisków Mount i Unmount. W przypadku wszelkich błędów pojawia się okno dialogowe, na przykład gdy próbujemy zamontować CD-ROM, a stacja jest pusta (warto spróbować). Przycisk Format działa tylko dla partycji twardego dysku. W tym celu fstool uruchamia program mkfs. Inne nośniki danych (np. dyskietki) formatowane są innymi sposobami.
- 16 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
Przycisk Check działa tylko dla systemów plików typu ext2 i minx. Istnieje bardzo małe prawdopodobieństwo, że dla systemów plików zamontowanych na twardym dysku pojawią się w tym miejscu komunikaty o błędach, jako że są one testowane w momencie ładowania systemu i raczej nie ulegają uszkodzeniom podczas normalnej pracy Linuksa. Menu NFS jest używane do montowania i odłączania sieciowych systemów plików NFS. Aby wyjść z Filesystem Managera, należy w menu programu wybrać opcję Quit. Ręczne edytowanie pliku /etc/fstab. Plik /etc/fstab jest plikiem tekstowym, tzn. takim, który został tak sformatowany, że może być również czytany przez człowieka, a nie tylko przez komputer. Plik /etc/tab jest podzielony na kolumny za pomocą klawisza Tab lub spacji i można go spokojnie edytować dowolnym edytorem tekstowym. Edytując plik należy jednak postępować bardzo ostrożnie, bowiem popełnienie błędu w którymkolwiek z wierszy może spowodować, że dany system plików nie zostanie podczas następnego ładowania systemu zamontowany. Plik etc/fstab na moim komputerze wygląda tak jak poniżej:
/dev/hda1 1/dev/hdb5 2/dev/hda3 2/dev/hdb1
/ /home /usr /usr/src
ext2 ext2 ext2 ext2
defaults defaults, rw defaults defaults
1 1 1 1
3
/dev/hdc /mnt/cdrom 0/dev/sbpcd0 /mnt/pcd 0/dev/fd1 /mnt/f loppy
iso9660 iso9660 vfat
user, noauto, ro 0 user, noauto, ro 0 user, noauto 0
0
/proc
/proc
proc
defaults
-
/dev/hda2
none
swap
sw
Pierwsze cztery wiersze zaczynające się od /dev zawierają specyfikację systemów plików składających się na mój Linux. Kiedy Linux jest ładowany, pierwszy zostaje zamontowany system plików root, a pozostałe lokalne systemy katalogów zaraz po nim.
Kolejność w pliku /etc/fstab ma istotne znaczenie. Poszczególne systemy plików są w pliku /etc/fstab zapisane w takiej kolejności w jakiej są montowane w systemie. System plików zamontowany w katalogu /usr musi pojawić się przed systemem plików podczepionych w katalogu /usr/src. Jeśli podzieliliśmy twardy dysk na partycje po to, aby oddzielić od siebie poszczególne części systemu Linux, musimy dbać, aby zostały zamontowane.
Dwie kolumny liczb po prawej stronie służą odpowiednio poleceniom: dump i fsck. Polecenie dump porównuje liczbę z kolumny piątej z liczbą dni, które minęły od czasu utworzenia ostatniej rezerwowej kopii systemu, aby w odpowiednim czasie poinformować administratora, że przydałoby się zrobić kolejną taką kopię. Liczba w szóstej kolumnie, oznacza kolejność w jakiej system plików testowany jest przez fsck informuje ten program, które z systemów plików mogą być testowane jednocześnie Najpierw zawsze testowany jest główny system plików (root), później jednak poszczególne napędy dysków mogą być testowane równolegle. Linux jest wielozadaniowym systemem operacyjnym i może bez trudu wykonywać kilka czynności jednocześnie, niemniej nie ma sensu jednoczesne sprawdzanie dwóch znajdujących się na tym samym twardym dysku i korzystających z jednego napędu partycji, gdyż zamiast oszczędności kończy się to zazwyczaj niepotrzebną stratą czasu. Wszystkie systemy plików opatrzone tym samym kodem testowane są jednocześnie, poczynając od tych z najniższym numerem. Systemy plików nie opisane żadną liczbą lub te, którym przypisano 0 (takie jak napędy CD-ROM albo stacje dysków), nie są w ogóle sprawdzane.
- 17 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
3.4. Administrowanie użytkownikami i grupami użytkowników. 3.4.1. Tworzenie i modyfikowanie użytkowników i grup użytkowników. W większości dystrybucji są narzędzia do obsługi kont (np. userconfig), ale nie zawsze są dostępne. Dlatego też warto zaznajomić się z poleceniami useradd, usermod i userdel, pozwalającymi na tworzenie, edycje i kasowanie kont użytkowników w trybie wsadowym. ! Tworzenie kont za pomocą useradd Aby utworzyć nowe konto użytkownika za pomocą polecenia useradd, należy otworzyć sesje na koncie administratora i wpisać poniższe polecenie: [root@insoc /root]# useradd -d -s /bin/tcsh [ic] –c "" Pełna nazwa użytkownika to zazwyczaj jego imię i nazwisko, natomiast nazwa użytkownika odpowiada nazwie wpisywanej w polu Username programu usercfg (należy pamiętać o umieszczeniu pełnej nazwy w cudzysłowach). Oto konkretny przykład: [root@insoc /root]# useradd -d /home/janek -s /bin/tcsh [ic] -o "Janusz Styczeń" Janek ! Modyfikowanie parametrów kont - polecenie usermod Polecenie usermod pozwala na zmianę wszystkich parametrów danego konta. Należy pamiętać, że aby zmienić nazwę użytkownika, względnie jego UID, GID lub katalog domowy, trzeba upewnić się, że użytkownik ten nie posiada żadnej otwartej sesji. Do wprowadzania nowej konfiguracji konta służy następująca składnia: [root@insoc]# usermod -o "" –d -m –g -s -l Pełna nazwa to imię i nazwisko użytkownika, katalog domowy to ścieżka do nowego katalogu domowego, nazwa grupy określa, do jakiej grupy użytkownik będzie domyślnie należał, shell to domyślny shell uruchamiany po otwarciu sesji, nowa nazwa jest nazwą wymaganą podczas otwierania sesji, a obecna nazwa nazwą, z jakiej do tej pory korzystał dany użytkownik. Przykładowo, jeśli jeden z użytkowników zechce zmienić swoje imię i nazwisko na „Jan Kowalski", katalog domowy na /home/vector, domyślną grupę na ittf, shell na /bin/bash, a nazwę na vector, wpiszemy: [root@insoc /root]# usermod --o "Jan Kowalski" -d /home/vector -m -q ittf -s /bin/bash -l vector vector ! Kasowanie kont — polecenie userdel Do całkowitego usunięcia konta użytkownika z systemu służy polecenie userdel. Należy pamiętać, że aby operacja zakończyła się sukcesem, dany użytkownik nie może mieć żadnych otwartych sesji. Jeśli chcemy skorzystać z userdel, musimy otworzyć sesję na koncie administratora i wpisać: [root@insoc /root]# userdel --r Przykładowo, aby usunąć konto użytkownika vector, wpiszemy: [root@insoc /root]# userdel --r vector
- 18 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
TWORZENIE, EDYCJA I KASOWANIE GRUP Podobnie jak w przypadku pojedynczych użytkowników, istnieją polecenia pozwalające na tworzenie, modyfikowanie i kasowanie grup. Oto one: groupadd tworzy grupy groupmod modyfikuje grupy groupdel kasuje grupy. ! Tworzenie grup - polecenie groupadd Polecenie groupadd pozwala na tworzenie nowych grup w wierszu poleceń. Aby z niego skorzystać, trzeba otworzyć sesję na koncie administratora i wpisać: [root@insoc /root]# groupadd Przykładowo, aby utworzyć grupę o nazwie www, wpiszemy: [root@insoc /root]# groupadd www ! Edycja grup - polecenie groupmod Do zmiany nazwy grupy po jej utworzeniu służy polecenie groupmod. Aby wprowadzić zmianę, należy otworzyć sesję na koncie administratora i wpisać: [root@insoc /root]# groupmod --n Przykładowo, aby zmienić nazwę grupy admin na sysadmin, wpiszemy: [root@insoc /root]# groupmod --n sysadmin admim ! Kasowanie grup - polecenie groupdel Aby usunąć istniejącą grupę, należy skorzystać z polecenia groupdel. W tym celu otwieramy sesję na koncie administratora i wpisujemy: [root@insoc /root]# groupdel Jest jednak pewien problem: nie można skasować grupy będącej podstawową grupą jakiegokolwiek użytkownika. Trzeba najpierw usunąć konta użytkowników należących do danej grupy lub zmienić ich grupę podstawową za pomocą usermod. Przykładowo, aby usunąć grupę www, wpiszemy: [root@insoc /root]# groupdel www ! Zmiana przynależności użytkowników i plików do grup Linux udostępnia dwa programy umożliwiające zmianę przynależności użytkowników i plików do poszczególnych grup. Oba z nich mogą być uruchamiane w wierszu poleceń. Pierwszy, gpasswd, służy do zapisywania lub wypisywania użytkowników z grup, pod czas gdy drugi, chgrp, umożliwia zmianę przynależności plików.
- 19 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
! Administrowanie grupami za pomocą gpasswd [ Aby dopisać użytkowników do istniejącej grupy, należy otworzyć sesje na koncie administratora i wpisać: [root@insoc /root]# gpasswd –a Przykładowo, aby dopisać użytkownika vector do grupy www, wpiszemy: [root@insoc /root]# gpasswd -a vector www Do usuwania użytkowników z grup służy opcja -d: [root@insoc /root]# gpasswd -d Dla przykładu, usuńmy użytkownika yoko z grupy beatles: [root@insoc /root]# gpasswd -d yoko beatles ! Polecenie chgrp Aby zmienić grupę, do której przynależy dany plik, należy skorzystać z polecenia chgrp. W tym celu otwieramy sesję na koncie administratora i wpisujemy: [root@insoc /root]# chgrp Przykładowo, aby przypisać plik index.html grupie www, wpiszemy: [root@insoc /root]# chgrp www index.html Do zmiany przynależności całego katalogu (razem z jego podkatalogami) służy opcja -R. Przykładowo, aby przypisać wszystkie pliki w katalogu html do grupy www, wpiszemy: [root@insoc /root]# chgrp -R www html
3.4.2. Określenie praw dostępu do plików. Do zmiany właścicieli i praw dostępu do plików służą dwa polecenia: chown i chmod. chown pozwala na zmianę właściciela pliku, natomiast chmod umożliwia zmianę praw dostępu. ! Polecenie chown Aby zmienić właściciela wybranego pliku, należy użyć polecenia chown. W tym celu otwieramy sesję na koncie administratora i wpisujemy: [root@insoc /root]# chown Przykładowo, aby przypisać plik index.html użytkownikowi janek, wpiszemy: [root@insoc /root]# chown janek index.html Do zmiany właściciela całego katalogu (razem z jego podkatalogami) służy opcja -R. Przykładowo, aby przypisać cały katalog html użytkownikowi janek, musimy wpisać: [root@insoc /root]# chown –R janek html
- 20 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
! polecenie chmod Zanim przystąpimy do opisywania polecenia chmod, musimy powiedzieć parę słów o prawach dostępu do plików. W Linuksie każdy plik i katalog posiada trzy zestawy praw dostępu: prawa właściciela, prawa grupy oraz prawa pozostałych użytkowników. Prawa dostępu do plików są wyświetlane przez polecenie l s z opcją -1. Oto przykład: drwxr-xr-x -rw-------
2 1
janek sysadmin janek sysadmin
1024 Feb 14 15:49 2465 Feb 5 19:22
wesele index.html
Pierwsza kolumna wydruku opisuje prawa dostępu. Pierwszy z dziesięciu składających się na nią znaków reprezentuje typ pliku (d oznacza katalog, l oznacza dowiązanie symboliczne itp.); następne dziewięć to poszczególne prawa dostępu. Znaki drugi, trzeci i czwarty to prawa dostępu właściciela pliku; piąty szósty i siódmy - grupy, do której należ} dany plik, zaś ósmy, dziewiąty i dziesiąty pozostałych użytkowników systemu. Oto rodzaje praw dostępu do plików:
Litera
Znaczenie
r w x -
Prawo odczytu Prawo zapisu Prawo uruchamiania Brak praw
Każde prawo dostępu posiada przypisany mu parametr liczbowy. Prawu odczytu odpowiada parametr 4, prawu zapisu 2, a prawu uruchamiania 1. Pojedynczy zestaw trzech praw dostępu można więc przedstawić za pomocą jednej cyfry, dodając do siebie odpowiednie parametry. Oto kilka przykładów: Prawa dostępu : Wartość: --0 r-4 rw6 rwx 7 r-x 5 --x l
Znaczenie: Brak praw Prawo zapisu Prawo zapisu i odczytu Prawo zapisu, odczytu i uruchamiania Prawo odczytu i uruchamiania Prawo uruchamiania
Pozostałe kombinacje praw dostępu (na przykład -wx) są teoretycznie możliwe, ale w praktyce nie mają sensu i prawdopodobnie nigdy się z nimi nie spotkamy. Zestaw trzech cyfr, po jednej dla każdego z omówionych wcześniej zestawów, określa całkowity zbiór praw dostępu do danego pliku. Oto częściej spotykane kombinacje: Prawa dostępu: Wartość: -rw-------
600
-rw-r--r--
644
-rw-rw-rw-
666
Znaczenie: Prawo odczytu i zapisu wyłącznie dla właściciela pliku. Takie prawa posiada większość plików w systemie Prawo odczytu i zapisu dla właściciela oraz odczytu dla wszystkich pozostałych użytkowników. Należy mieć pewność, że zawartość tak oznaczonego pliku nie jest poufna Prawo odczytu i zapisu dla każdego użytkownika; rzadko stosowane ze względów bezpieczeństwa - 21 -
Systemy Sieciowe (UNIX)
Wykłady
-rwx------
700
-rwxr-xr-x
755
-rwxrwxr-x
777
-rwx--x--x
711
drwx------
700
drwxr-xr-x
755
drw--x--x
711
mgr inż. Artur Sierszeń
Prawo odczytu, zapisu i uruchamiania wyłącznie dla właścicielą pliku. Tak oznaczona jest większość wykonywalnych programów. Prawo odczytu, zapisu i uruchamiania dla właściciela pliku oraz odczytu i uruchamiania dla pozostałych użytkowników Nieograniczone prawa dostępu dla każdego użytkownika. Podobnie jak 666, to ustawienie jest niebezpieczne. Umożliwianie wszystkim użytkownikom modyfikowania ważnych plików to zabieganie o nieszczęście Prawo odczytu, zapisu i uruchamiania dla właściciela plików oraz uruchamiania dla pozostałych użytkowników. Przy ta kim zestawie praw dostępu pozostali użytkownicy systemu będą mogli uruchamiać nasze programy, ale nie będą mogli ich kopiować W tym wypadku mamy do czynienia z katalogiem, utworzonym za pomocą polecenia mkdir. Tylko właściciel może odczytywać zawartość tego katalogu i zapisywać w nim dane. Należy zwrócić uwagę, że katalogom zawsze musi towarzyszyć prawo dostępu x Ten katalog może być modyfikowany tylko przez właściciela, ale wszyscy pozostali użytkownicy mogą odczytywać jego zawartość Przydatny trik w sytuacji, gdy chcemy, aby dany katalog był dostępny dla pozostałych użytkowników, ale wolimy ukryć jego rzeczywistą zawartość (polecenie ls nie wyświetli listy plików umieszczonych w tak oznaczonym katalogu). Aby odczytać któryś ze znajdujących się w nim plików, użytkownik musi znać jego nazwę
[root@insoc /root]# chmod to jedna z opisanych wyżej trzycyfrowych liczb. Przykładowo, aby zmienić prawa dostępu do pliku index.html na -rw-r--r-- (prawo odczytu chmod nie powinno sprawić problemów. Oto składnia chmod i zapisu dla właściciela oraz odczytu dla pozostałych użytkowników), musimy wpisać: [root@insoc /root]# chmod 644 index.html Aby zmienić prawa dostępu do wszystkich plików w danym katalogu (i do plików w jego podkatalogach), skorzystać z opcji -R. Przykładowo, aby ustawić zestaw 755 dla wszystkich plików w katalogu /usr/bin, wpiszemy: [root@insoc /root]# chmod -R 755 /usr/bin
- 22 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
3.5. Administrowanie połączeniami sieciowymi. 3.5.1. Konfiguracja połączeń sieciowych. !
ifconfig
ifconfig [interface] ifconfig interface [aftype] options | address .. . Ifconfig jest używany do konfigurowania (a później opiekowania się) rezydującymi w jądrze interfejsami sieciowymi. Jest używany podczas bootowania do skonfigurowania większości z nich do stanu pracy. Później jest zwykle potrzebny tylko przy debuggowaniu lub tuningowaniu systemu. Jeśli nie poda się argumentów, ifconfig po prostu wyświetli status obecnie zdefiniowanych interfejsów. Jeśli podany jest pojedynczy argument interface to wyświetla on status podanego interfejsu. W przeciwnym wypadku zakłada, że trzeba coś skonfigurować. Rodziny Adresów Jeśli pierwszy argument po nazwie interfejsu jest rozpoznawany jako nazwa wspieranej rodziny adresów, to ta rodzina adresów jest używana do dekodowania i wyświetlania wszystkich adresów protokołowych. Obecnie wspierane rodziny adresów to inet (TCP/IP, domyślne) ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell IPX) i netrom (AMPR Packet radio). OPCJE: ! interface Nazwa interfejsu sieciowego. Jest to zwykle nazwa w rodzaju eth0, sl3 lub podobna: nazwa sterownika urządzenia, za którą następuje numer jednostki. ! up Flaga ta powoduje aktywację interfejsu. Wyjątkowo jest podawana gdy interfejsowi nadano nowy adres (patrz niżej). ! down Flaga ta powoduje wyłączenie sterownika tego interfejsu i jest pomocna gdy zaczyna dziać się coś złego. ! [-]allmulti Włącz lub wyłącz tryb promiscuous interfejsu. Znaczy to, że wszystkie przychodzące ramki zostają przesyłane do sieciowego poziomu jądra systemowego, umożliwiając monitoring. ! dstaddr addr Ustawia adres IP "drugiego końca" w przypadku połączenia Point-To-Point, jak PPP. Słowo to jest przedawnione, gdyż istnieje nowe słowo, pointopoint. ! netmask addr Ustawia maskę sieciową IP dla tego interfejsu. Wartość domyślnie przybiera wartość zwykłej maski sieciowej klasy A, B lub C (jak to wynika z adresu IP interfejsu), lecz może być ustawiona na dowolną wartość na użytek "podsieciowania". (subnetting) ! irq addr Ustaw linię przerwań używaną przez to urządzenie. Wiele urządzeń nie wspiera dynamicznego ustawiania IRQ.
- 23 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
! [-]broadcast [addr] Jeśli podano także argument adresu, ustaw adres broadcastowy protokołu na ten interfejs. W przeciwnym wypadku ustawia to tylko flagę IFF_BROADCAST na interfejsie. Jeśli słowo kluczowe było poprzedzone minusem (-) to flaga ta jest czyszczona. ! [-]pointopoint [addr] To słowo kluczowe włącza tryb point-to-point interfejsu, który oznacza, że jest to bezpośrednie połączenie między dwoma maszynami, których nikt inny nie podsłuchuje. Jeśli podano także argument adresu, ustaw adres protokołowy drugiej strony połączenia, tak jak w przedawnionym dstaddr. W przeciwnym wypadku ustawia to tylko flagę IFF_POINTOPOINT interfejsu. Jeśli słowo kluczowe było poprzedzone minusem (-) to flaga jest czyszczona. ! hw Ustaw adres sprzętowy interfejsu, jeśli sterownik wspiera taką operację. Za słowem tym musi występować nazwa klasy sprzętowej i odczytywalnym w ASCII ekwiwalentem adresu sprzętowego. Wspierane obecnie klasy sprzętowe to ether (Ethernet), ax25 (AMPR AX.25), ARCnet i netrom (AMPR NET/ROM). ! multicast Włacz flagę multicast na interfejsie. Normalnie nie powinno być to potrzebne, gdyż sterowniki istawiają tę flagę same. ! address Nazwa hosta lub adres IP (nazwa hosta zostanie resolwowana do adresu IP) interfejsu. Parametr ten jest wymagany, chociaż składnia obecnie go nie wymaga.
3.5.2. Korzystanie z usług sieciowych. ! ping. Polecenie ping służy do testowania czasu opóźnienia w przekazywaniu danych między lokalnym komputerem a wybranym serwerem w Internecie. Czas ten jest wyznaczany przez wysyłanie małych pakietów danych do wskazanego komputera i oczekiwanie na ich powrót (testowany komputer odsyła pakiety ping natychmiast po ich otrzymaniu). ! who Umożliwia wyświetlenie listy zalogowanych aktualnie użytkowników, ich terminali, godziny załogowania i nazwy komputera, z którego się załogowali. Jeżeli jest podana dodatkowa nazwa, to dane są czytane z podanego pliku zamiast z /etc/utmp. ! talk Umożliwia realizację połączenia talk z podanym użytkownikiem. Jeżeli użytkownik jest zalogowany na różnych terminalach, to można podać nazwę teminala z wiersza poleceń. Polecenie talk dzieli ekran na dwie części - w górnej połowie jest wyświetlane wejście lokalne, a w dolnej zdalne. Połączenie jest kończone po naciśnięciu (Ctrl+c). Niestety, istnieją dwie niezgodne wersje polecenia talk, więc nie zawsze możliwe jest połączenie między różnymi platformami. ! rlogin Podobnie jak telnet, polecenie to umożliwia połączenia z podanym komputerem i załogowanie się na nim. Jeżeli lokalny użytkownik jest wpisany do pliku .rhosts albo /etc/hosts.equiv na komputerze zdalnym, to nie trzeba podawać hasła. - 24 -
Systemy Sieciowe (UNIX)
Wykłady
mgr inż. Artur Sierszeń
! pine. Pakiet pine został opracowany przez Uniwersytet Waszyngtoński, składa się z programy do obsługi poczty elektronicznej oraz edytora pico. Ani pine, ani pico nie wymagają środowiska X Windows. Pakiet pine sprawdza się bardzo dobrze zwłaszcza wtedy, gdy system obsługuje odbieranie przychodzących połączeń modemowych. Pine i pico mają bardzo wielu użytkowników, ze względu na swoje małe wymagania i duże możliwości. ! ftp. Program służący do transmisji plików z wykorzystaniem protokołu FTP. Komputer może być podany jako nazwa albo adres IP Jeżeli nie zostanie podany żaden komputer, to program wyświetla znak zachęty i pozwala wprowadzać polecenia FTP Napisanie help powoduje wyświetlenie tekstu pomocy. ! lynx. Przeglądarka lynx, stworzona na uniwersytecie stanu Kansas, działa wyłącznie w trybie tekstowym. Oznacza to, że nie jest zdolna do wyświetlania obrazków ani do odgrywania muzyki; nie udostępnia również multimedialnych możliwości oferowanych przez nowoczesne przeglądarki graficzne. Jej zaletą jest natomiast szybkość działania oraz niewielkie rozmiary (500 kb bajtów; dla porównania pakiet Netscape Communicator zajmuje przeszło 25 MB). Do uruchomienia lynxa nie potrzeba systemu X Window.
- 25 -