SERWER LINUKSOWY
Głównym powodem do wykorzystania Linuksa we wszelkiego rodzaju zastosowaniach sieciowych, jest jego przewaga pod względem ceny i wydajności nad innymi systemami. Zainstalowany Linux na szybkim komputerze, oferuje większe możliwości niż firmowe komercyjne stacje robocze. Komputer z Linuksem może współpracować z komputerami wykorzystującymi mechanizmy sieciowe Windows.
Dlatego Linux jest idealnym systemem do następujących zastosowań:
· Serwer grupy roboczej.
· Host internetowy.
· Serwer WWW.
· Serwer WWW w intranecie.
· Serwer lub klient Windows.
Pojęcie grupa robocza oznacza małą sieć lokalną, składającą się z około dziesięciu komputerów. Jeżeli wszystkie komputery pracują pod Linuksem, jeden z nich można skonfigurować jako serwer plików i drukarek. Współużytkowanie plików może się odbywać poprzez wbudowany w Linuksa podsystem NFS (Network File System). Jeżeli w sieci komputerowej znajdują się również komputery z systemem Windows, komputer z Linuksem należy ustawić jako serwer Windows.
Dysponując odpowiednim połączeniem z dostawcą internetu, można skonfigurować komputer z Linuksem jako host internetowy.
Host internetowy oferuje takie usługi jak: poczta elektroniczna, grupy dyskusyjne, możliwość publikowania dokumentów www, FTP, możliwość skonfigurowania zapory sieciowej (firewall).
Linux może służyć jako idealny serwer WWW (World Wide Web). Należy tylko odpowiednio skonfigurować serwer Apache, co wcale nie jest takie trudne. Następnie musimy przygotować strony do opublikowania.
Intranet oznacza sieć wewnętrzną w której zastosowane są protokoły TCP/IP oraz wykorzystano takie usługi jak WWW i FTP. Do dystrybucji informacji w sieci wewnętrznej można wykorzystać serwer WWW. Użytkownicy sieci za pomocą przeglądarek, będą mieli wgląd do różnych dokumentów i materiałów oraz baz danych.
Jednym z najważniejszych zastosowań Linuksa jest udostępnianie plików i drukarek użytkownikom komputerów osobistych, działających pod kontrolą DOS/Windows.
Linuks świetnie nadaje się do roli serwera plików i drukarek. Argumentami przemawiającymi za takim rozwiązaniem są: duża stabilność systemu, niskie wymagania sprzętowe oraz niski koszt.
Samba
Pecety pracujące w sieci udostępniają sobie wzajemnie pliki, posługując się opracowanym przez firmę Microsoft protokołem SMB. Aby korzystać z plików za pomocą Linuksa, należy zainstalować w nim pakiet o nazwie Samba. Jest on dość potężny – zapewnia dostęp do plików i drukarek, sterowanie domenami NT, serwowanie nazw WINS oraz nadawanie/odbiór komunikatów WinPopup. Samba składa się z serwera SMB oraz kilku programów pomocniczych.
Konfiguracja
Konfiguracja pakietu nie jest sprawą prostą, gdyż plik konfiguracyjny zawiera sporo opcji. Mówiąc ogólnie, plik składa się z sekcji zawierających opcje przyporządkowujące zmiennym odpowiednie wartości. Każda sekcja zaczyna się nagłówkiem w nawiasach kwadratowych:
[nazwa_sekcji]
i kończy w miejscu rozpoczęcia następnej sekcji lub na końcu pliku. Opcje mają następującą postać:
nazwa_opcji=wartość
Do pliku możemy wprowadzać również komentarze. Rozpoczynają się znakiem „;”, zaś kończą wraz z końcem linii. Po każdej zmianie zawartości pliku konfiguracyjnego możemy zmusić serwer do natychmiastowego przeczytania pliku (sygnałem HUP):
# killall -HUP smbd
lub poczekać aż demon smbd samodzielnie przeczyta plik i zaktualizuje konfigurację. Operacja ta wykonywana jest co jakiś czas (np. co minutę). Jeśli nie jesteśmy pewni, czy plik konfiguracyjny jest poprawny, możemy to sprawdzić poleceniem testparm:
testparm nazwa_pliku_konfiguracyjnego
Program sprawdzi poprawność pliku i wypisze zawartość wszystkich zmiennych serwera działającego w oparciu o plik konfiguracyjny. Jeśli nie mamy wprawy w konfigurowaniu demona smbd i zależy nam na ciągłej pracy serwera, nie powinniśmy bezpośrednio modyfikować pliku smb.-conf – należy wykonać kopię pliku i przed każdym użyciem zbadać jego poprawność. W pliku może znajdować się wiele sekcji. Każda jest odpowiedzialna za udostępnianie jednego katalogu/drukarki. Wyjątkiem są trzy specjalne sekcje – global, homes i printers.
Sekcja globar
zawiera parametry globalne, odnoszące się do całego serwera. Jeśli wprowadzimy do niej parametry lokalne (charakterystyczne dla pozostałych sekcji), staną się domyślnymi wartościami w pozostałych sekcjach.
Sekcja homes
przydaje się wówczas, gdy chcemy udostępnić katalogi domowe użytkowników Linuksa (takich, którzy mogą się zalogować i korzystać z systemu). Nie tworzy więc jednego udziału, tylko wiele – po jednym dla każdego użytkownika. Z reguły chcemy, aby udział ten był zapisywalny (opcja writable) oraz odnosił się do katalogu domowego użytkownika. Powinniśmy też ograniczyć prawa dostępu do katalogu domowego dla niezarejestrowanych użytkowników (guest) oraz „ukryć” udział (opcja browsable).
Sekcja printers
służy do udostępniania drukarek, których opisy znajdują się w pliku /etc/printcap. Należy koniecznie ustawić możliwość druku (opcja printable) oraz wyłączyć możliwość zapisu (writable). Ścieżka (opcja path) będzie wskazywać katalog – spooler (w którym przechowywane będą dane przed ich wydrukowaniem).
Sekcje lokalne
W sekcjach opisujących udostępniane udziały oraz w sekcjach specjalnych (homes, printers) można ustawiać jedynie te opcje, które odnoszą się do sekcji lokalnych. Szczegółowe opisy opcji występujących w różnych sekcjach można znaleźć w podręczniku systemowym (man smb.conf). Zamiast pisać nowy plik konfiguracyjny od początku, możemy posłużyć się gotowym plikiem /etc/smb.conf, instalowanym wraz z serwerem SAMBA. Liczne komentarze znajdujące się w pliku powinny ułatwić zadanie.
Serwer w sieci Novell
Rozwiązanie firmy Novell posługuje się specjalnym protokołem sieciowym – IPX. System Linux obsługuje IPX (jeśli rekompilowaliśmy wcześniej jądro systemu, musimy sprawdzić, czy włączyliśmy obsługę IPX, i ewentualnie ponownie je zrekompilować). Maszyna działająca pod kontrolą Linuksa może udostępniać dyski, pliki i drukarki klientom sieci Novell – do tego celu służy serwer mars_nwe.
Konfiguracja serwera MARS
W katalogu /etc znajduje się plik konfiguracyjny nwserv.conf. Jego struktura jest zupełnie inna niż serwera SMB – składa się on z ciągu linii:
[numer_parametru] [wartość(i)]
Poszczególnym cechom serwera (dostępnym udziałom, nazwom itd.) przyporządkowane są różne numery (numery sekcji). W pliku mogą znajdować się komentarze – zaczynają się od znaku '#', zaś kończą z końcem linii. Udostępniane woluminy opisujemy następująco:
1 <nazwa_woluminu> <katalog> <opcje>
Oto najważniejsze opcje:
k – pozwala nadawać plikom nazwy zawierające małe litery alfabetu (lower-case),
m – udostępniamy nośnik wymienny (dyskietkę lub CD-ROM),
r – udział tylko do odczytu.
UZYSKIWANIE INFORMACJI O SYSTEMIE
Pliki /proc mogą być użyte do uzyskania informacji o stanie jądra, atrybutach komputera, stanie uruchomionych procesów, itp. Większość plików w katalogu /proc dostarcza najświeższych informacji na fizyczne środowisko systemu. Pomimo, że pliki /proc są wirtualne, mogą być przeglądane przy pomocy dowolnego edytora plików, jak 'more', 'less' czy 'cat'. Kiedy dowolny edytor próbuje otworzyć wirtualny plik, plik ten jest tworzony na bieżąco z informacji z jądra.
System plików /proc może być użyty do zebrania użytecznych informacji o systemie i działającym jądrze. Niektóre z ważnych plików przedstawię poniżej
/proc/cpuinfo - informacje o procesorze (model, rodzina, rozmiar cache itp.) /proc/meminfo - informacje o fizycznej pamięci RAM, obszarze wymiany itp. /proc/mounts - lista zamontowanych systemów plików /proc/devices - lista dostępnych urządzeń /proc/filesystems - wspierane systemy plików /proc/modules - lista załadowanych modułów /proc/version - wersja jądra /proc/cmdline - parametry przekazane do jądra podczas uruchomienia
W katalogu /proc jest znacznie więcej plików niż wypisane powyżej. Każdy kto chce uzyskać jak najwięcej informacji o systemie powinien przejrzeć każdy plik z katalogu /proc wykorzystując polecenie 'more', w celu uzyskania informacji o plikach znajdujących się w /proc. Użycie 'more', a nie 'cat' byłoby dobrym rozwiązaniem zanim poznamy trochę system plików, ponieważ niektóre pliki (np. kcore) mogą być bardzo duże.
Informacje o uruchomionych procesach
System plików /proc może być wykorzystany do uzyskania informacji o każdym działającym procesie. W katalogu /proc jest kilka numerowych podkatalogów. Każdy numerowany katalog jest związany z id procesu (PID). W związku z tym dla każdego uruchomionego procesu, w katalogu /proc znajduje się podkatalog nazwany tak, jak jego PID. Wewnątrz tych podkatalogów znajdują się pliki dostarczające ważnych szczegółów o stanie i środowisku procesu.
Można spróbować znaleźć przykładowo uruchomiony proces poleceniami:
$ ps -aef | grep mozillaroot 32558 32425 8 22:53 pts/1 00:01:23 /usr/bin/mozillaPowyższa komenda pokazuje, że jest uruchomiony proces mozilla z PID 32558. W związku z tym z katalogu /proc powinien być podkatalog 32558.
$ ls -l /proc/32558total 0-r--r--r-- 1 root root 0 Dec 25 22:59 cmdline-r--r--r-- 1 root root 0 Dec 25 22:59 cpulrwxrwxrwx 1 root root 0 Dec 25 22:59 cwd-> /proc/ -r-------- 1 root root 0 Dec 25 22:59 environlrwxrwxrwx 1 root root 0 Dec 25 22:59 exe-> /usr/bin/mozilla*dr-x------ 2 root root 0 Dec 25 22:59 fd/-r--r--r-- 1 root root 0 Dec 25 22:59 maps-rw------- 1 root root 0 Dec 25 22:59 mem-r--r--r-- 1 root root 0 Dec 25 22:59 mountslrwxrwxrwx 1 root root 0 Dec 25 22:59 root-> //-r--r--r-- 1 root root 0 Dec 25 22:59 stat-r--r--r-- 1 root root 0 Dec 25 22:59 statm-r--r--r-- 1 root root 0 Dec 25 22:59 status
Plik "cmdline" zawiera komendę użytą do uruchomienia procesu. Plik "environ" zawiera zmienne środowiskowe dla procesu. "status" zawiera informacje o statusie procesu, zawierające numer identyfikacyjny użytkownika (UID) oraz grupy (GID) dla użytkownika, który uruchomił proces, ID procesu-rodzica (PPID), oraz aktualny stan procesu, taki jak "Sleeping" (uśpiony) czy "Running" (działający). Każdy katalog procesu ma także kilka łączy symbolicznych. "cwd" jest łączem roboczego katalogu procesu, "exe" jest łączem do wykonywalnego programu uruchomionego procesu, "root" jest łączem do katalogu, który proces "widzi" jako swój katalog główny (zazwyczaj "/"). Katalog "fd" zawiera łącza do deskryptorów plików, z których korzysta proces. "cpu" istnieje tylko na jądrach Linuxa SMP.
/proc/self jest interesującym podkatalogiem, który ułatwia programowi użycie /proc do odszukania informacji o swoim procesie. Wpis /proc/self jest łączem symbolicznym do podkatalogu /proc odnoszącego się do procesu odczytującego katalog /proc.
5
akunseth