wprowadzenie do systemu linux

63
WPROWADZENIE DO SYSTEMU LINUX

Upload: xuxa

Post on 25-Feb-2016

90 views

Category:

Documents


6 download

DESCRIPTION

Wprowadzenie do systemu Linux. Wielodostępność systemu Linux. Trochę Historii :. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Wprowadzenie do systemu Linux

WPROWADZENIE DO

SYSTEMU LINUX

Page 2: Wprowadzenie do systemu Linux

Wielodostępność systemu LinuxWielodostępność wywodzi sie z czasów, kiedy jeden komputer centralny (mainframe) wykonywał jednocześnie wiele programów nadzorowanych przez wielu użytkowników. Problem dostępu do sprzętu rozwiązywano następująco: do komputera łączami szeregowymi podłączona była pewna liczba sprzętowych terminali, które pozwalały na wyświetlanie tekstu na monitorze i obsługę klawiatury. To wystarczało, gdy wszelkie przetwarzanie danych i tak było zadaniem komputera, zaś terminali podłączyć mona było i kilkadziesiąt. Potem komputery staniały i zaczęły masowo pojawiać sie na wielu biurkach. Jednakże wraz z upowszechnieniem sieci komputerowych stare idee odżyły. Okazało sie, że wciąż wygodnie jest wydzielić w sieci komputer, do którego wszyscy Będą mieli jednoczesny dostęp. Po cóż jednak stosować prymitywne terminale sprzętowe, skoro ich role pełnić może program uruchomiony na PC.

Trochę Historii :

Page 3: Wprowadzenie do systemu Linux

Dziś terminal rozumiany jest teraz prawie wyłącznie jako program, który pozwala na łączenie sie z innym komputerem poprzez siec i zdalna na tym komputerze prace. Dla odróżnienia konsola nazywa sie "sprzętowy terminal" nieodłącznie związany z konkretnym komputerem, czyli jego monitor i klawiaturę. Siedząc przy konsoli, ma sie dostęp do wielu tzw. wirtualnych terminali. Pozwala to na bezproblemowe wykorzystanie wielozadaniowości 4 i wielodostępu bez korzystania z dodatkowego sprzętu. Praca zdalna oznacza, że fizycznie znajdując sie przy jednym komputerze, uzyskuje sie prawo do uruchamiania programów na innym, zwanym serwerem.

Page 4: Wprowadzenie do systemu Linux

W Praktyce…Komputer lokalny sprowadzony zostaje do roli prymitywnego terminala, który wyświetla uzyskane dane na ekranie, zaś odsyła do serwera informacje o naciśnietych przez użytkownika klawiszach. Praca wielodostępna ma sens tylko wtedy, gdy użytkownicy mogą uruchamiać i wykonywać swoje programy jednocześnie. Wymaga to odpowiedniej konstrukcji systemu operacyjnego i jest charakterystyczna cecha wszystkich Uniksów

Page 5: Wprowadzenie do systemu Linux

Logicznym następstwem wielodostępności jest to, że tych samych programów używać może jednocześnie wiele osób. Oczywiście na dysku przechowywana jest tylko jedna kopia programu, dostępna dla wszystkich zainteresowanych. Dodatkowa oszczędność pamięci wprowadzają programy, które wykorzystują współdzielone biblioteki systemowe. Oznacza to na przykład, e dwa programy działające jednocześnie zajmują mniej pamięci, ni by to wynikało z zsumowania zajętości dla każdego programu z osobna. To właśnie wielodostępność wymusza taka a nie inna konstrukcje systemu operacyjnego. Pojedynczy użytkownik, jednoznacznie identyfikowany nazwa i hasłem, może wykorzystywać lub modyfikować jedynie ściśle określone zasoby. Zadaniem systemu operacyjnego jest zapewnienie sprawiedliwego lub określonego priorytetami podziału czasu procesora, miejsca na dysku, przepustowości sieci itp. Piecze nad całością sprawuje administrator, którego konto (o nazwie root) pozwala na swobodny dostęp do wszystkich plików, zasobów i mechanizmów systemowych.

Następstwa wielodostępności

Page 6: Wprowadzenie do systemu Linux

Wielozadaniowość systemu LinuxWielozadaniowość (inaczej wieloprocesowość) jest to cecha systemu operacyjnego (a dokładniej jadra, inaczej kernela) mówiąca czy może on wykonywać "jednocześnie" kilka procesów. Wielozadaniowość otrzymuje się poprzez tzw. scheduler, czyli algorytm kolejkujący i porządkujący procesy, które maja być wykonane. W rzeczywistości procesor nie jest w stanie wykonywać dwóch operacji naraz, ale dzieli czas swojej pracy na krótkie odcinki dla każdego procesu, tak, aby nie było to zauważalne dla użytkownika, po czym wykonuje zadane mu zadania (w chwili obecnej prawie każdy system obsługuje wielozadaniowość). Możliwość wielozadaniowości nie oznacza wcale, e na komputerze mona uruchomić nieskończona ilość procesów. Im więcej procesów jest uruchomionych, tym zadania wykonywane są wolniej, gdy wyczerpują one dostępne zasoby w postaci pamięci RAM, dysku twardego i procesora.

Page 7: Wprowadzenie do systemu Linux

Systemami wielozadaniowymi są:

- UNIX- 32-bitowe systemy z rodziny Microsoft Windows (np. Microsoft Windows 95)- Mac OS i jego następca Mac OS X- Linux

Nie są:- DOS (może być więcej niż jeden proces, ale tylko jeden Będzie wykonywany)

Page 8: Wprowadzenie do systemu Linux

Najważniejsze cechy systemuLinux jest systemem nowoczesnym, ponieważ wielu programistów wciąż pracuje nad rozwojem jądra systemu oraz bogatego zestawu programów usługowych. O jego nowoczesności decydują przede wszystkim cechy wymienione poniżej: wielodostęp, wielozadaniowość, czyli praca z podziałem czasu procesora pomiędzy wiele zadań, wieloprzetwarzanie, czyli praca wieloprocesorowa, możliwość uruchamiania zadań w łagodnym czasie rzeczywistym, obsługa różnych typów systemów plików, obsługa różnych protokołów sieciowych, obsługa różnych formatów plików wykonywalnych, wykorzystanie współdzielonych bibliotek.

Page 9: Wprowadzenie do systemu Linux

efektywność i stabilność systemu, powszechna dostępność bez jakichkolwiek opłat

licencyjnych, bogaty zestaw oprogramowania umożliwiający

szeroki zakres zastosowań, możliwość pracy na wielu platformach sprzętowych

przy stosunkowo niewielkich wymaganiach, możliwość łatwej współpracy z innymi popularnymi

systemami operacyjnymi, bogata dokumentacja w wersji elektronicznej, dostępność kodu źródłowego.

Page 10: Wprowadzenie do systemu Linux

System plikówSposób, w jaki komputer organizuje pliki i katalogi na nośniku danych o swobodnym dostępie (takim jest np. dysk twardy i dyskietka magnetyczna, ale już nie taśma magnetofonowa, w której dostęp do danych wymaga jejprzewinięcia). System plików określa to, jak informacje są zapisywane i odczytywane; definiuje takie wielkość klastrów, możliwe do użycia atrybuty plików oraz schemat poprawnych nazw plików i katalogów - ich długość i dopuszczalne znaki w nazwach. System plików pozwala by współpracujący użytkownicy mogli korzystać z tych samych plików, ale te chronić pliki przed dostępem do nich nieuprawnionych użytkowników. Istnieje wiele odmiansystemów plików, większość współczesnych ma strukturę hierarchiczna, złożona z katalogów i plików:Systemem plików zostaje utworzony podczas formatowania partycji,Dwa najczęściej spotykane systemy plików w Linux’ie to ext2, oraz jego nowsza wersja ext3 (posiadającątransakcyjny zapis oparty na dzienniku).

Page 11: Wprowadzenie do systemu Linux

System plików ext2Drugi rozszerzony system plików dla systemu Linux. Ext2 zastąpił rozszerzony system plików ext. Rozpoznanie uszkodzenia systemu plików (np. po załamaniu się systemu) następuje przy starcie systemu, co pozwala na automatyczne naprawianie szkód za pomocą oddzielnego programu (e2fsck), uszkodzone pliki zapisywane są w katalogu lost+found.System plików ext2 zawiera mechanizm zapobiegający znacznej fragmentacji danych, co zdarzało się podczas używania poprzedniej jego wersji.Ext2 przy domyślnym rozmiarze bloku (4 KB) obsługuje partycje o wielkości do 16 TB i pojedyncze pliki o wielkości do 2 TB. Nazwy plików mogą mieć do 255 znaków długości.Ważnym elementem systemu ext2 są wolne pola w strukturach danych – to dzięki nim między innymi, możliwa jest konwersja „w locie” do systemu ext3 – wykorzystuje on po prostu część z nich do przechowywania swoich danych.

Page 12: Wprowadzenie do systemu Linux

System plików ext3System plików ext3 jest rozszerzeniem ext2 i różni się od niego dodanym mechanizmem księgowania – dokładnego zapisu zmian na dysku, który w razie awarii systemu umożliwia szybsze przywrócenie spójności systemu plików niż w przypadku ext2. Poza mechanizmem księgowania system plików ext3 różni się od ext2 brakiem możliwości odzyskania skasowanych plików.W odróżnieniu od większości innych systemów z księgowaniem system ext3 daje do wyboru trzy tryby księgowania:w trybie najbezpieczniejszym księgowane są zarówno metadane jak i zwykłe dane;w trybie domyślnym księgowane są tylko metadane;istnieje jeszcze jeden tryb, w którym również księgowane są tylko metadane, ale jest mniej bezpieczny, ponieważ pozwala na modyfikację danych objętych metadanymi nie zapisanymi jeszcze na dysk.

Page 13: Wprowadzenie do systemu Linux

Zalety systemu plików ext3

Duża niezawodność Prosta implementacja Małe obciążenie procesora w

porównaniu z ReiserFS i XFS Kompatybilność z ext2.

Page 14: Wprowadzenie do systemu Linux

Wady systemu plików ext3 Ze względu na zerowanie wskaźników do węzłów

usuniętych plików, w systemie ext3 jest bardzo utrudnione odzyskanie skasowanych plików (w przeciwieństwie do ext2).

Zmiana wielkości partycji bez utraty danych możliwa jedynie po odmontowaniu i zamianie na ext2 – zmianę wielkości pracującej partycji umożliwia ReiserFS.

Dla danych dostępna niepełna powierzchnia dysku. Ograniczona wielkość partycji do 32 TiB – pół

miliona razy większą wielkość partycji (do 16 EiB) zapewnia XFS.

Page 15: Wprowadzenie do systemu Linux

Drzewo katalogowe UNIXKatalogi systemu UNIX/Linux są zorganizowane hierarchicznie. System ten, w odróżnieniu od systemu MS-DOS, nie tworzy osobnej hierarchii dla każdej partycji, tworzy tylko jeden system plików dla wszystkich partycji. Katalogiem, który znajduje sie u samego szczytu tej struktury (tzw. drzewa katalogowego) jest katalog root(korzeń), oznaczony jako „/” (forward slash).

Page 16: Wprowadzenie do systemu Linux

Przykładowe drzewo katalogowe systemu Linux

Page 17: Wprowadzenie do systemu Linux

Drzewo katalogów /Zawartość głównego systemu plików jest niewielka, pozwala na bootowanie inaprawę systemu. bin/

Zawiera komendy użyteczne zarówno dla zwykłego użytkownika, jak i dla administratora. Jest tuwyłącznie ich niezbędny zestaw.

boot/Zawiera wszystko, co jest potrzebne programowi bootujacemu, za wyjątkiem konfiguracji iinstalatora map.

dev/Ten katalog zawiera pliki urządzeń.

etc/Zawiera pliki konfiguracyjne specyficzne dla maszyny.

-X11/Konfiguracja systemu X Window.

home/Zawiera katalogi domowe użytkowników. Wewnętrzny układ dobiera administrator.

Page 18: Wprowadzenie do systemu Linux

lib/ Zawiera te biblioteki współdzielone, które są niezbędne do

zbootowania systemu oraz uruchamiania komend z głównego systemu plików, zawiera równie moduły jadra.

- modules/Dynamicznie ładowalne moduły jadra.

mnt/Służy do tymczasowego montowania systemów plików przez administratora.

opt/Zarezerwowane do instalacji dodatkowych aplikacji. Aplikacje powinny być instalowane w osobnych podkatalogach w /opt/.

proc/Informacje o pracy jadra. Zawartość tego katalogu nie znajduje sie na dysku, lecz jest generowana dynamicznie przez jadro.

root/Katalog domowy użytkownika root.

Page 19: Wprowadzenie do systemu Linux

osbin/ Zawiera programy używane do administracji systemem i inne

komendy użyteczne dla roota. Zawiera jedynie zestaw niezbędny do bootowania i naprawy systemu.

tmp/ Katalog ten służy do zapisu plików tymczasowych.

Zawartość tego katalogu może być kasowana przy restarcie systemu. Kady użytkownik ma prawo zapisu.usr/ Katalog ten jest druga główna sekcja systemu plików.

Zawiera dane tylko do odczytu, które mogą być współdzielone miedzy maszynami.

var/ Zawiera zmienne dane. Są to m.in. kolejki, logi, pliki danych

oraz pliki tymczasowe.

Page 20: Wprowadzenie do systemu Linux

Urządzenia LinuxLinux otrzymuje dane z, wysyła je do oraz przechowuje je w urządzeniach (devices). Urządzenie zazwyczajodpowiada jednostce sprzętowej, takiej jak na przykład klawiatura czy port szeregowy. Jednakże urządzenie niezawsze posiada odpowiednik sprzętowy; jadro systemu (kernel) tworzy kilka pseudourządzeń, które nie istniejąfizycznie, ale za to mona uzyskać do ich dostęp jakby rzeczywiście istniały. Co więcej, jednostka sprzętowa może odpowiadać kilku urządzeniom, na przykład Linux definiuje każda partycje dysku twardego jako osobneurządzenie. Dyski i urządzenia wejścia//wyjścia odwzorowywane jako pliki w katalogu /dev.

Page 21: Wprowadzenie do systemu Linux

Lista wybranych plików z katalogu /dev: /dev/console - konsola systemu /dev/mouse - mysz szeregowa /dev/hda -pierwszy dysk IDE /dev/hda1 -pierwsza partycja pierwszego dysku /dev/hda2 -druga partycja pierwszego dysku /dev/hdb -drugi dysk IDE /dev/hdb1 -pierwsza partycja drugiego dysku IDE /dev/fd0 -pierwsza dyskietka /dev/lp0 -pierwszy port drukarki /dev/null -urządzenie puste (do testów) /dev/ttyN -wirtualny terminal (lokalny) /dev/ptyN -pseudoterminal do logowania przez siec

Page 22: Wprowadzenie do systemu Linux

Jądro LinuxJądro Linux (ang. Linux kernel) – najważniejsza, wolna część uniksopodobnego systemu operacyjnego GNU/Linux napisana przez Linusa Torvaldsa w 1991 roku, a obecnie rozwijana przez licznych programistów z całego świata.

Początkowo działało na platformie Intel 80386, lecz później zostało przeniesione na wiele innych platform. Największa część kodu napisana jest w języku C, z pewnymi rozszerzeniami GCC a pozostała część to wstawki w asemblerze.

Kod jądra Linuksa jest objęty licencją GNU General Public License, jest zatem oprogramowaniem FLOSS.

Page 23: Wprowadzenie do systemu Linux

Architektura JądraJądro Linuksa jest w dużym stopniu zgodne ze standardami ANSI i POSIX, obsługuje wielozadaniowość, wielowątkowość, wielobieżność, pamięć wirtualną, biblioteki współdzielone, ładowanie na żądanie, współdzielony kod wykonywalny (ang. copy-on-write), dobre zarządzanie pamięcią i obsługę sieci TCP/IP. Jest ono jądrem monolitycznym z ładowalnymi modułami. Sterowniki urządzeń i rozszerzenia jądra zwykle pracują w trybie ring 0, z pełnym dostępem do sprzętu; nieliczne jednak działają w trybie użytkownika. W przeciwieństwie do typowych jąder monolitycznych, sterowniki urządzeń są zwykle kompilowane jako moduły, które można załadować i wyładować na działającym systemie. Podobnie, sterowniki mogą być wywłaszczone w określonych warunkach. Ta funkcja została dodana w celu poprawnej obsługi przerwań sprzętowych i systemów wieloprocesorowych.

Fakt, że Linux jest zbudowany na zasadzie jądra monolitycznego, a nie mikrojądra był powodem słynnej dyskusji między Linusem Torvaldsem a Andrew S. Tanenbaumem (autorem Miniksa) na grupie comp.os.minix w 1992 roku.

Cały kod źródłowy różnych wersji Linuksa można obejrzeć na stronie http://lxr.linux.no/

Page 24: Wprowadzenie do systemu Linux

Instalacja Jądra LinuxKod źródłowy jądra Linuksa można pobrać z kernel.org. Aby skompilować wersję 2.6.x należy wykonać następujące komendy w podanej kolejności:

Make o l d c o n f i g aby szybko przeanalizować plik konfiguracyjny .config z poprzedniej wersji jądra (pominąć ten krok, jeśli poprzednia konfiguracja jest niedostępna), Make c o n f i g (lub bardziej przyjazne warianty: make m e n u c o n f i g – dla trybu tekstowego, make x c o n f i g – GUI-Qt lub też make g c o n f i g – GUI-GTK+) aby wybrać funkcje wbudowane w jądro. Można np. zbudować jądro obsługujące bardzo szeroką lub bardzo wąską gamę sprzętu. Włączenie obsługi wszystkiego co możliwe zwiększa zajętość pamięci przez jądro i może nieco spowolnić działanie systemu. Jeśli jest ono przeznaczone do pracy na określonym komputerze, obsługę urządzeń, których ten komputer nie posiada można pominąć. Make kompiluje wszystkie komponenty jądra, Make m o d u l e s _ i n s t a l l kopiuje skompilowane moduły do odpowiedniej lokalizacji (zwykle w podkatalogu /lib/modules), Make i n s t a l l kopiuje obraz jądra (o nazwie vmlinux lub vmlinuz) do właściwego katalogu i aktualizuje program startowy (LILO lub GRUB) aby system mógł wystartować po restarcie z nowym jądrem.

Page 25: Wprowadzenie do systemu Linux

Moduły LinuxW jądrze Linuks sterowniki do urządzeń mogą zarówno być wbudowane w samo jądro (wkompilowane moduły), albo też w osobnym pliku, i wtedy są one ładowane do pamięci komputera i uruchamiane w razie potrzeby, lub przy starcie systemu.

Page 26: Wprowadzenie do systemu Linux

Zalety modułowej budowyKernel Linuks jest makrokernelem, tzn. zajmuje się nie tylko komunikacją pomiędzy poszczególnymi procesami, ale także zarządzaniem pamięcią, obsługą urządzeń czy obsługą systemów plików. Dla porównania, w architekturze mikrokernela, sam kernel zajmuje się tylko zapewnieniem komunikacji pomiędzy procesami, natomiast do obsługi poszczególnych urządzeń, czy systemów plików, zajmują się osobne wykonywalne programy.

Jednak Linuks ma modułową budowę, co oznacza że części kodu odpowiadające za obsługę poszczególnych urządzeń, systemów plików czy protokołów, mogą zostać od niego oddzielone - i dzięki temu zyskuje największe zalety mikrokerneli, czyli: obsługę poszczególnych urządzeń czy protokołów można rozwijać

niezależnie od samego kernela (nie wymaga to zmian w innych częściach kernela)

podział prac nad jądrem na grupy zajmujące się poszczególnymi częściami znacznie ułatwia i przyspiesza rozwój

możliwość zmniejszenia wielkości kernela, poprzez wykasowanie z pamięci operacyjnej nieużywanych modułów

możliwość tworzenia zamkniętych, binarnych sterownikówPrzy tym budowa jako makrokernel, i możliwość wbudowania modułów w strukturę samego kernela, przyspiesza działanie, ponieważ nie ma konieczności wielokrotnego powtarzania przełączania procesów, przy komunikacji pomiędzy poszczególnymi modułami.

Page 27: Wprowadzenie do systemu Linux

Do czego służą modułyModuły, odpowiadają sterownikom w terminologii DOS/Windows. Mogą one obsługiwać nie tylko urządzenia - lista możliwych zadań modułów jest szersza: bezpośrednia komunikacja z urządzeniem (standardowe,

systemowe polecenia tłumaczy na kod rozumiany przez konkretny model urządzenia)

bezpośredni odczyt/zapis w systemie plików (dzięki temu system widzi pliki, katalogi i ich właściwości, natomiast sam moduł dba o przetłumaczenie tego na kombinację bajtów w określonych miejscach na dysku)

obsługa protokołów (np. protokołów sieciowych).Najogólniej, moduły kernela służą do komunikacji niskopoziomowej - zajmują się tłumaczeniem standardowych poleceń na kod odpowiadający im w danym przypadku.

Page 28: Wprowadzenie do systemu Linux

UŻYTKOWNICY I GRUPYZe względu na wieloużytkownikowość i wielodostęp, systemy UNIX posiadają bazę danych informacji o użytkownikach. W bazie tej zawarte są podstawowe dane o każdym z użytkowników, takie jak nazwa użytkownika, numer, grupa do której należy, krótki opis, katalog domowy oraz powłoka której używa. Baza użytkowników znajduje się w pliku /etc/passwd, natomiast hasła użytkowników i informacje uzupełniające w /etc/shadow.Aby łatwiej zarządzać prawami dostępu do zasobów, użytkownicy należą do jednej lub więcej grup. Dla przykładu - do grupy "studenci" należy każdy student będący użytkownikiem systemu Linux (czyli posiadający konto w tym systemie) i dzięki temu studenci otrzymują dostęp tylko dla odczytu do ogólnych informacji dotyczących danej uczelni. Studenci kierunku Informatyka należą dodatkowo do drugiej grupy, np. "informatycy", dzięki czemu otrzymują dostęp do treści zadań dla danego kierunku. Część z nich, należy do grupy laboratoryjnej, opracowującej program dla systemu Linux. Ci studenci należą dodatkowo do trzeciej grupy, np "linux-lab" - to daje im pełny dostęp do określonego katalogu w systemie, gdzie mogą wspólnie pisać, kompilować i testować program. Jednocześnie do tego programu nie ma dostępu żaden student spoza grupy "linux-lab".W systemach UNIX przyjęto, że każdy użytkownik ma swój numer (UID), który jest jego identyfikatorem. Prawa dostępu do zasobów określane są względem tego numeru, a nie nazwy użytkownika. Nazwa jest jakby "aliasem" do numeru - można ją w każdej chwili zmienić bez żadnych konsekwencji - wszystkie prawa dostępu zostają zachowane (bo przyznawane są według numerów, a nie nazw). Dzięki /etc/passwd możliwe jest "tłumaczenie" nazw na UIDy i odwrotnie. Możliwe też jest stworzenie dwóch lub więcej kont z tymi samymi numerami UID pod różnymi nazwami. Wówczas użytkownicy, korzystający z tego samego UIDu mają identyczne prawa i ograniczenia w systemie pomimo, że mogą posiadać różne hasła, katalogi domowe czy powłoki.

Page 29: Wprowadzenie do systemu Linux

cd..Grupy użytkowników funkcjonują na podobnych zasadach. Każda grupa posiada swój

numer (GID) i to właśnie ten numer wykorzystywany jest przy określaniu praw dostępu. Każdy z użytkowników musi należeć przynajmniej do jednej grupy. Główna grupa do której należy użytkownik zapisana jest w /etc/passwd. Pozostałe - w /etc/group. Aby przekonać się, w jakich grupach znajduje się użytkownik i jaki jest jego UIDnależy wydać komendę:

id [UŻYTKOWNIK]gdzie:UŻYTKOWNIK - specyfikacja sprawdzanego użytkownika. W przypadku nie podania

nazwy użytkownika, "id" zwraca dane dotyczące użytkownika bieżącego.Przykład zastosowania:

Z wyświetlonych informacji wynika, że użytkownik "student" ma nadany numer UID=501, jego główną grupą jest "users" (GID=100), a dodatkowo należy do grup "studenci" GID=501, "informatyka" GID=550 oraz linux-lab GID=934.Użytkownicy i grupy ułatwiają zarządzanie dostępem do zasobów. Dla przykładu:

Page 30: Wprowadzenie do systemu Linux

Właścicielem pliku kopia jest użytkownik "student". Prawa dla tego pliku, określane są dla właściciela, grupy i wszystkich pozostałych użytkowników. Aby optymalnie zarządzać tymi prawami, właściciel pliku może zmienić grupę względem której określane są prawa. W tym przypadku wszyscy użytkownicy należący do grupy "users" mogą odczytywać zawartość pliku, ale nie mogą go modyfikować. Uzytkownik "student", zmieniając grupę np. na "linux-lab" spowoduje, że tylko użytkownicy tej grupy będą mogli przeglądać zawartość tego pliku. W tym celu posłużyć się należy poleceniem "chgrp" o następującej składni:

chgrp GRUPA PLIK(I)gdzie:

GRUPA - grupa, na którą należy zmienić,PLIK(I) - lista plików do zmiany.

Grupę może zmienić tylko właściciel pliku i to tylko i wyłącznie na grupę w której należy. Ograniczenia te nie dotyczą oczywiście użytkownika root. Dodatkowo administrator może zmienić właściciela pliku poleceniem "chown" o następującej składni:chown [WLASCICIEL][.GRUPA] PLIK(I)gdzie:

WLASCICIEL - nowy właściciel pliku,GRUPA - nowa grupa,PLIK(I) - lista plików poddawanych operacji zamiany.

Page 31: Wprowadzenie do systemu Linux

Wirtualne konsole w Linuksie Możemy ich mieć wiele - najprawdopodobniej do 255. Konsole te oznaczane są symbolem ttyX,

gdzie X jest identyfikatorem konsoli (terminala) - liczbą naturalną (np. tty1, tty2, tty3 itd.). Reprezentowane są przez urządzenia znakowe w katalogu /dev (np. /dev/tty1) o numerze MAJOR=4 i MINOR=0...255. Bezpośredni dostęp przez kombinację klawiszy ALT-<klawisz funkcyjny> możemy mieć do początkowych 24-ch terminali (tty1 - tty24). Terminale tty1-tty12 osiągamy poprzez wciśnięcie lewego klawisza ALT i klawisza funkcyjnego Fn, co powinno nas przełączyć na terminal ttyn (np. po naciśnięciu ALT-F6, przełączamy się na terminal tty6). Kolejnych 12 terminali jest osiągalnych przez prawy ALT-Fn, co przełącza nas na terminal tty{n+12} (np. prawy ALT-F2 przełącza nas na terminal tty14). Innym sposobem przełączania terminali jest użycie kombinacji ALT-<strzałka>. Po naciśnięciu prawej strzałki przełączamy się na kolejną konsolę, natomiast po naciśnięciu lewej przechodzimy na poprzedni terminal. Wszystkie te operacje są przeprowadzane modulo ilość terminali.

Przykład: załóżmy, że pracujemy w standardowym 3-cim runlevelu bez iksów. Niech aktualnym terminalem będzie tty3. Wtedy pięciokrotne naciśnięcie ALT-<prawa strzałka> przełączy nas kolejno na terminale tty4, tty5, tty6, tty1, tty2. Wówczas pięciokrotne naciśniecie lewej strzałki przeniesie nas kolejno na terminal tty1, tty6, tty5, tty4, tty3 (z powrotem do punktu wyjścia). Ten sam rezultat moglibyśmy osiągnąć naciskając jeszcze jeden raz ALT-<prawa strzałka>

Powyższe skróty (ALT-<klawisz funkcyjny> ALT-<strzałka> nie działają niestety pod iksami, w iksach mają one inne znaczenie. Do przełączenia konsoli, gdy aktywne są iksy, używamy kombinacji lewy ALT-CTRL-<klawisz funkcyjny> o działaniu odpowiadającym kombinacji lewy ALT-<klawisz funkcyjny> w konsolach tekstowych. Uwaga: kombinacja ALT-CTRL-<strzałka> nie może być używana w ten sposób. Dostęp do konsoli o dużych numerach (np. tty25, tty26) jest tylko przez ALT-<strzałka>. Problem z przełączaniem konsoli pojawia się, gdy mamy równocześnie wiele sesji iksów. Wprawdzie taka sytuacja nie zdarza się w praktyce nigdy (iksy + KDE to grubo ponad 20 MB ramu), ale niespójność systemu dostępu do odpowiednich terminali jest trochę irytująca.

Page 32: Wprowadzenie do systemu Linux

Każdy terminal, zanim może być użyty, musi być otwarty. Służą to tego programy z rodziny getty. Sam getty (/sbin/getty) jest dosyć mocnym programem i może być używany do otwierana konsol wirtualnych jak i innych terminali (np. połączonych portem szeregowym). Dlatego używa się przeważnie jego uproszczonych, wyspecjalizowanych klonów: mingetty do otwierania konsol wirtualnych, mgetty do modemów i innych. mingetty jest uruchamiany przez inita. W standardowym RedHacie init uruchamia mingetty'a sześciokrotnie. Fragment pliku /etc/inittab:

1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 Jeżeli mamy potrzebę użycia większej ilości terminali (konsol), to należy dopisać odpowiednie wywołania mingetty'a, np.: 11:2345:respawn:/sbin/mingetty tty11 12:2345:respawn:/sbin/mingetty tty12Uwaga! Niektóre dystrybucje nie mają urządzeń specjalnych w katalogu /dev/ reprezentujących wyższe numery terminali (tty13-tty24), nie mówiąc już o terminalach o jeszcze wyższych identyfikatorach. Tak jest w RedHacie. Należy wówczas (tylko gdy jest taka potrzeba, czyli nieczęsto) dodać te urządzenia ręcznie, np. komendą mknod:

mknod /dev/tty12 c 4 12 mknod /dev/tty13 c 4 13 mknod /dev/tty14 c 4 14 Dopiero wtedy wrzucamy konfigurację do inittaba i możemy się cieszyć prawym ALT-Fn. Terminale otwierane są również przez iksy (X-serwer jest związany z jakimś określonym terminalem). Iksy wchodzą nam na pierwszy wolny terminal (z wyjątkiem "zarezerwowanego" tty1) : w przypadku standardowych dystrybucji 6-cio terminalowych jest to terminal siódmy (tty7). Tak jest w przypadku uruchamiania Linuksa w runlevelu 5-tym, jak i w przypadku ręcznego uruchamiania iksów komendą startkde, startx itp. Teoretycznie, gdyby żaden z terminali nie był inicjowany przez inita, iksy pakowałyby się na terminal drugi (tty2). W przypadku, gdy wszystkie dostępne terminale są już zajęte (otwarte przez konsolowego mingetty'a lub otwarte przez inne sesje iksów) X-server wyjdzie z błędem "Could not open /dev/ttyXX". Wtedy należy użyć komendy mknod do stworzenia urządzenia wirtualnego /dev/ttyXX. Iksy dobrze się czują również na wysokich numerach terminali (np. tty30), dostęp jednak do nich jest trochę utrudniony (wielokrotne ALT-<strzałka>).

Page 33: Wprowadzenie do systemu Linux

"Naprawianie" terminali wirtualnych

Czasami terminal zostaje "zepsuty" (np. przez próbę wyświetlenia pliku binarnego za pomocą komendy cat). "Zepsucie" objawia się zwykle poprzez niezrozumiałe znaki na terminalu (lub brak wyświetlania czegokolwiek). Spowodowane jest zmianą pewnych parametrów terminala. Naprawienie polega na wpisaniu komendy: stty sane lub reset (działanie obu komend jest w tym przypadku identyczne). W trakcie wpisywania komendy nie należy zwracać uwagi na to, że znaki komendy nie są wyświetlane lub wyglądają niezrozumiale (i tak powinna przynieść skutek). Jeżeli jednak nie pomoże, może to oznaczać, że terminal został zablokowany. Zablokowanie to następuje zazwyczaj po naciśnięciu CTRL-S i łatwo je zrobić przypadkowo. Żeby odblokować terminal, należy zwykle nacisnąć CTRL-Q.

Page 34: Wprowadzenie do systemu Linux

SSH SSH (ang. secure shell) to standard protokołów komunikacyjnych używanych w sieciach

komputerowych TCP/IP, w architekturze klient-serwer. W ścisłym znaczeniu SSH to tylko następca protokołu Telnet, służącego do terminalowego

łączenia się ze zdalnymi komputerami. SSH różni się od Telnetu tym, że transfer wszelkich danych jest zaszyfrowany oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. W szerszym znaczeniu SSH to wspólna nazwa dla całej rodziny protokołów, nie tylko terminalowych, lecz także służących do przesyłania plików (SCP, SFTP), zdalnej kontroli zasobów, tunelowania i wielu innych zastosowań. Wspólną cechą wszystkich tych protokołów jest identyczna z SSH technika szyfrowania danych i rozpoznawania użytkownika. Obecnie protokoły z rodziny SSH praktycznie wyparły wszystkie inne "bezpieczne" protokoły, takie, jak np. rlogin czy RSH.

Ogólne założenia protokołu SSH powstały w grupie roboczej IETF. W użyciu są obie jego wersje - 1 i 2. W wersji 2 możliwe jest użycie dowolnych sposobów szyfrowania danych i 4 różnych sposobów rozpoznawania użytkownika, podczas gdy SSH1 obsługiwało tylko stałą listę kilku sposobów szyfrowania i 2 sposoby rozpoznawania użytkownika (klucz RSA i zwykłe hasło). Stosowanie wersji 1 jest obecnie stanowczo odradzane ze względu na ujawnione podatności na ataki man-in-the-middle, czyniące korzyści ze stosowania protokołu znikomymi.

Najczęściej stosowany sposób szyfrowania to AES, choć część serwerów nadal używa szyfrowania Blowfish i technik z rodziny DES.

Rozpoznawanie użytkownika może się opierać na tradycyjnym pytaniu o hasło, klucz (RSA, DSA) lub z użyciem protokołu Kerberos.

Trzy najbardziej znane implementacje SSH to zamknięte ssh.com, OpenSource'owe OpenSSH oraz wersja protokołu stosowana w programie PuTTY.

Protokoły z rodziny SSH korzystają zwykle z portu 22 protokołu TCP, choć często stosuje się porty o innych numerach w celu zwiększenia bezpieczeństwa serwera. Sama rodzina SSH znajduje się w warstwie aplikacji modelu OSI, ale do połączenia korzysta z protokołu TCP.

Page 35: Wprowadzenie do systemu Linux

Składnia LinuxSkładnia ssh (FC4):

Składnia sshd (FC4):

Przykładowe użycieAby połączyć się ze zdalnym komputerem wystarczy wydać polecenie:ssh login@host opcjonalnie można podać numer portu:ssh login@host -p <port> np:ssh [email protected] -p 80 Aby włączyć tunelowanie należy użyć składni:ssh -L 8888:localhost:80 [email protected] Aby przetunelować sesję protokołu X należy wykonać polecenie:ssh -X login@host

Page 36: Wprowadzenie do systemu Linux

TERMINAL Bardzo ważną cechą systemów uniksowych jest rozdzielenie systemu, czyli procesów

wykonujących zadania, od interfejsu. Dotyczy to nie tylko interfejsu graficznego, ale także i tekstowego.

Jądro Linuks ma zaimplementowaną emulację terminali. Historycznie terminale były to komputery o minimalnych możliwościach obliczeniowych i bez własnej pamięci masowej, ale z monitorem i klawiaturą. Za pomocą tych terminali można było sterować główną jednostką obliczeniową. Taki podział był spowodowany m.in. przez bardzo wysoką cenę komputerów w tamtym czasie, i umożliwiał pracę na wielu stanowiskach, z użyciem tylko jednego komputera.

Obecnie wbudowana obsługa terminali w GNU/Linuksie umożliwia zarówno zdalną pracę (np. zdalną administrację serwerem), jak i wykorzystanie wielozadaniowości systemu także w środowisku tekstowym (uruchomienie wielu terminali odpowiada funkcjonalnie otwarciu wielu okien, gdzie w czasie gdy jeden program jest zajęty i nie odpowiada, możemy pracować w innym).

Taka budowa ma również skutki dla twórców oprogramowania - umożliwia to napisanie aplikacji która nie ma praktycznie interfejsu, tylko komunikuje się z użytkownikiem za pomocą wypisywanych linijek tekstu, a użytkownik wpisuje polecenia. Kiedy chcemy mieć aplikację, która wykonuje dokładnie to samo zadanie, ale ma prostszy interfejs, np. wybór wykonywanej akcji z menu, można napisać po prostu nakładkę na nasz pierwotny program, i jego wyjście i wejście przekierować do tej nakładki, zamiast na ekran (czyli terminal).

Page 37: Wprowadzenie do systemu Linux

Poruszanie się po terminalachW większości dystrybucji jest standardowo 6 terminali uruchamianych - od numeru 7 wzwyż znajdują się środowiska graficzne w kolejności uruchamiania. Terminale mają nazwy ttyliczba, np. tty1 - pierwszy wirtualny terminal.Do poruszania się pomiędzy terminalami dostępnych jest kilka skrótów klawiszowych:LewyAlt + StrzałkaWPrawo - przechodzimy do terminala o wyższym numerze (np. z 2. na 3.)LewyAlt + StrzałkaWLewo - przechodzimy to terminala o niższym numerze; jeżeli jesteśmy na 1. terminalu, to przejdzemy na ostatni (np. 7.), podobnie w pierwszym przypadkuLewyAlt + Fn, gdzie n to numer terminala, na który chcemy przejść (np. LewyAlt+F1 przenosi nas na pierwszy terminal).Natomiast w środowisku graficznym te skróty nieznacznie się różnią:kombinacja LewyAlt + strzałka, nie działaCtrl + LewyAlt + Fnumer_terminala - przechodzimy do terminala o podanym numerze.Wirtualne terminale inaczej określa się jako "wirtualne konsole".

Page 38: Wprowadzenie do systemu Linux

Logowanie, aktywowanie interfejsu użytkownika i wylogowywanie

WprowadzenieAby móc pracować w systemie Linuks musisz posiadać konto

użytkownika oraz hasło do niego. Zawsze musisz się uwierzytelniać się w systemie. Większość systemów linuksowych na komputery klasy PC

posiada dwa podstawowe tryby w których można je uruchamiać: szybki i skromny tryb tekstowy, który wygląda jak DOS z myszką, wielowątkowy oraz obsługujący wielu użytkowników, albo tryb graficzny, który wygląda

lepiej, lecz pożera więcej zasobów systemowych.

Page 39: Wprowadzenie do systemu Linux

Tryb graficzny

W dzisiejszych czasach jest to domyślny tryb w komputerach domowych. Wiesz, że zostaniesz zalogowany do systemu pracującego w trybie graficznym, gdy pierwszy raz zostajesz poproszony o nazwę użytkownika, a następnie, w nowym oknie, o hasło.Aby się zalogować, upewnij się, że wskaźnik myszy znajduje się w okienku logowania, wpisz swoją nazwę użytkownika oraz hasło i kliknij OK lub naciśnij ENTER.

Może minąć trochę czasu, zanim, po wpisaniu kombinacji nazwa użytkownika/hasło, uruchomi się graficzne środowisko; zależy to od tego jak szybki masz procesor, jakiego używasz oprogramowania oraz jakie masz ustawienia osobiste.Aby kontynuować będziesz musiał otworzyć okno terminala, w skrócie xterm (X poprzedza nazwę dla podkreślenia możliwości użycia tego oprogramowania w trybie graficznym). W zależności od tego, jakiego menedżera okien używasz, program ten może zostać znaleziony w menu Aplikacje -> Usługi, Narzędzia systemowe lub Internet. Może istnieć także ikona skrótu, użycie której spowoduje otwarcie terminala, a kliknięcie prawym przyciskiem myszki na pulpicie zazwyczaj wywoła menu kontekstowe, które na pewno posiada możliwość uruchomienia terminala graficznego.

Page 40: Wprowadzenie do systemu Linux

Podczas przeglądania menu zauważysz, że wiele rzeczy można zrobić bez wpisywania poleceń z klawiatury. Dla większości użytkowników, dobra, stara metoda wskaż-i-kliknij całkowicie wystarczy do pracy z komputerem. Jednak ten poradnik przeznaczony jest dla przyszłych administratorów sieciowych oraz systemowych, którzy będą musieli grzebać w sercu systemu. Oni, aby sprostać wszystkim zadaniom jakie ich czekają, potrzebują silniejszego, niż myszka, narzędzia. Tym narzędziem jest powłoka, a, będąc w trybie graficznym, aktywujemy ją otwierając okno terminala.Okno terminala jest twoim panelem kontrolnym systemu. Prawie wszystko o czym mówimy jest wykonywane za pomocą tego prostego, tekstowego narzędzia. Gdy otworzysz okno terminala zawsze powinien znajdować się w nim znak zachęty. Nasz pokazuje standardowy znak zachęty, który składa się z nazwy użytkownika oraz aktualnego katalogu roboczego reprezentowanego przez tyldę (~):

Page 41: Wprowadzenie do systemu Linux

Tryb tekstowyGdy zobaczysz czarny ekran na którym widać (najczęściej) białe znaki, oznacza to, że jesteś w trybie tekstowym. Ekran logowania w tym trybie zazwyczaj pokazuje kilka informacji o komputerze na którym pracujesz, jego nazwę oraz znak zachęty oczekujący na twoje zalogowanie.

Logowanie w tym trybie różni się od logowania w trybie graficznym tym, że tutaj musisz nacisnąć ENTER po podaniu nazwy użytkownika, ponieważ na ekranie nie ma przycisków, które mógłbyś kliknąć. Następnie powinieneś wpisać hasło i ponownie nacisnąć ENTER. Nie będziesz widział, co wprowadzasz, nie zobaczysz nawet gwiazdek czy poruszającego się kursora. Takie zachowanie jest normalne i jest stosowane ze względów bezpieczeństwa.Gdy zostaniesz zalogowany, na ekranie możesz zobaczyć więcej informacji, nazywanych Wiadomością Dnia, która może zawierać dowolne informacje. Dodatkowo, w systemie UNIX popularne jest wyświetlanie podpowiedzi, które zawierają pewne przydatne lub nieprzydatne (to zależy od ciebie) informacje. Następnie zostanie przydzielony ci shell, wskazywany przez taki sam znak zachęty jak w trybie graficznym.

Page 42: Wprowadzenie do systemu Linux

System uwierzytelniania w systemie Linux

Jednym z podstawowych elementów bezpieczeństwa systemu Linux jest identyfikacja użytkowników i weryfikacja ich tożsamości. Tradycyjne mechanizmy identyfikacji użytkowników wykazują pewne ograniczenia. W celu zwiększenia elastyczności oraz uniknięcia niespójności, w systemie Linux wprowadzono dość rewolucyjne rozwiązanie, którym jest systemPAM, opracowany przez .firmę SunSoft.. Jest on w stanie zastąpić tradycyjne metody autentykacji użytkowników.

Page 43: Wprowadzenie do systemu Linux

Linux-PAM (ang. Pluggable Authentication Modules for Linux) to zestaw bibliotek dzielonych, umożliwiających administratorowi lokalnego systemu wybranie dla każdej aplikacji sposobu autentykacji użytkownika. Innymi słowy, możliwe jest przełączanie pomiędzy różnymi mechanizmami uwierzytelniania bez konieczności ponownej kompilacji aplikacji, a tym bardziej bez ponownego jej programowania. Dodatkowo, możliwe jest wprowadzanie ulepszeń do mechanizmów autentykacji bez jakichkolwiek zmian w aplikacjach korzystających z tych mechanizmów.Elastyczność Linux-PAM polega na tym, że administrator ma wybór sposobu uwierzytelniania użytkowników dladanej aplikacji. Może ustawić dla każdej aplikacji korzystającej z Linux-PAM inny mechanizm autoryzacji, poczynając od trywialnej autoryzacji poprzez hasło, a kończąc na autoryzacji poprzez głos, linie papilarne, jednorazowe hasło lub cokolwiek innego, co zostanie wymyślone. Aby aplikacja mogła używać Linux-PAM, jego funkcje muszą być bezpośrednio zakodowane w programie.Aby zastosować uwierzytelnianie do systemu Linux za pomocą tokenów należy skorzystać z modułu PAM: Pam-PKCS#11. Pam-PKCS#11 jest modułem PAM umożliwiającym logowanie się do systemu Linux przy użyciu kart inteligentnych. Moduł ten korzysta z biblioteki obsługującej karty w standardzie PKCS#11 (np. OpenSC lub eToken PKI Client),co uniezależnia moduł od modelu karty.Moduł Pam-PKCS#11 uwierzytelnia użytkownika na podstawie certy.katu X.509. Podpisany przez urząd certyfikacji certyfikat wraz z odpowiadającym mu kluczem prywatnym znajdują się na karcie (tokenie). Dostęp do certyfikatu użytkownika znajdującego się na karcie umożliwia biblioteka PKCS#11. Uwierzytelnianie działa podobnie jak podpis elektroniczny. Za pomocą klucza prywatnego, który znajduje się na karcie i dostępny jest tylko właścicielowi karty, podpisywane są pewne dane losowe. Następnie przy użyciu certyfikatu klucza publicznego, który również znajduje się na karcie weryfikowany jest owy podpis. W celu weryfikacji wiarygodności certyfikatu klucza publicznego, wykorzystywany jestcertyfikat urzędu certyfikacji CA, który znajduje się lokalnie w systemie lub jest zagwarantowany do niego dostęp online oraz lista CRL. Aby umożliwić zalogowanie się do systemu właściciela certy.katu jako konkretnego użytkownika, modułPam-PKCS#11 wykorzystuje porównywanie (tzw. mapowanie) niektórych pól z certy.katu do opisu konta użytkownika.Pola te są wybierane w zależności od konfiguracji.

Page 44: Wprowadzenie do systemu Linux

Wykorzystanie cech powłoki (shella) bash podczas pracy

Linux udostepnia wiele rodzajów interpretatorów polecen: shell Bourne’a (sh) shell C (csh) Bourne Again Shell (bash) shell (tcsh) który wyparl (csh) Przeglad cech powloki systemowej, interpretatora polecen

Page 45: Wprowadzenie do systemu Linux

komunikat systemu root@dom oznacza, ze jestesmy zalogowani jako administrator na komputerze dom. Symbol # oznacza gotowosc do pracy i tu wpisujemy wszelkie polecenia np.

polecenie: whoami oznacza zapytanie o nazwe uzytkownika pod jaka aktualnie pracuje i jest nim rootpolecenie: whoefektem bedzie lista aktualnie zalogowanych uzytkowników na naszym komputerzepolecenie: di i uderzenie klawisza tabulacji (tab) spowoduje wylistowanie wszystkich polecen do których mamy prawo i zaczynajacych sie na „di”. Jest to jedna z niezmiernie uzytecznych cech powloki systemowej przy pracy z poziomu konsoli tekstowej i jest to dopelniania komend. Dwukrotne uderzenie klawisza tabulacji (tab) spowodowalo pytanie: Display all 3102 possibilities? (y or n). Zapytanie czy wylistowac wszystkie 3102 polecenia, które mam prawo wykonac.

Page 46: Wprowadzenie do systemu Linux

1. Polecenia maja opcje: długie –help pelna nazwa poprzedzona dwoma myslnikaminp. ls --help krótkie -l jedna litera poprzedzona myslnikiemnp. ls -l2. Powloka zawiera podrecznik (manual) liczacy okolo 6 tys. wierszy, którym poslugujemy sie z pomoca polecenia: man [opcje] nazwa polecenianp.man man- w wyniku uzyskamy pomoc jak poslugiwac sie podrecznikiemman ls - uzyskamy pierwsza napotkana strone podrecznika odnoszaca sie do polecenia lsman -a ls- prezentuje kolejne strony podrecznika odnoszace sie do polecenia lsman -s 5 ls- prezentuje strone podrecznika z sekcji 5 odnoszace sie do polecenia lsman -k ls - prezentuje nazwe i krótki opis zagadnienia dotyczacy polecenia lsapropos ls- krótki opis zagadnienia ls

3. Wygodna w pracy z konsola jest funkcja dopelniania komend oznacza nacisniecie klawisza tabulacji lub oznacza nacisniecie klawisza y - (dwukrotne uderzenie ) spowoduje wyswietlenie pytania czy chcemy uzyskac wszystkie polecenia systemu do których mamy prawo. y/n np. cd /u <tab>np. cd (tab)(tab) drugi (tab) wyswietli wszystkie mozliwie polecenia do których mam prawo. Nie dopelnia jesli nie pozwalaja na to prawanp. tr(tab)(tab)

Page 47: Wprowadzenie do systemu Linux

4. historia komend (kursory góra, dól)przechowywana w ukrytym pliku .bash_history katalogu domowym uzytkownika - mozna usunac, jesli okaze sie zbyt duzy.Polecenie clear czysci zawartosc konsoli przesuwajac jej zawartosc w góre 5. Mechanizm definiowania aliasówmozna definiowac polecenia alias nazwa=’która komenda ma sie wykonywac i z jakimi parametrami’np.alias dir='ls -l'teraz dir spowoduje przeglad katalogualias cs='clear'cs oznacza czyszczenie ekranui ich usuwania przez unalias cswiele z aliasów definiowanych jest w pliku konfiguracyjnym /etc/profile

Page 48: Wprowadzenie do systemu Linux

6. Zmienne srodowiskowe sa interpretowane po ustaleniu ich wartosci, pozwalaja na modyfikacje systemu w tzw. locieenv - wydruk listy zmiennych srodowiskowychecho $PS1- wydruk wartosci zmiennej PS1 odpowiadajacej za forme zgloszeniaecho $PATH- wydruk wartosci zmiennej okreslajacej sciezki przeszukiwan w przypadku uruchamiania programuUstalanie wartosci zmiennych srodowiskowych np. PS1=”\u@\h >” - zmiana wartosci odpowiedzialnej za forme zgloszeniaSpis i znaczenie parametrów dla PS1 \u -nazwa uzytkownika\h- nazwa komputera\w -nazwa aktualnego katalogu ze sciezka dostepu\W- nazwa aktualnego katalogu\d - aktualna data\v-wersja powloki\$-znak uzytkownika (# dla administratora, $ dla zwyklego uzytkownika)\t -czas (24h)\T -czas (12h)

Page 49: Wprowadzenie do systemu Linux

inne zmienne srodowiskowe to: HOME katalog domowySHELL domyslny shell (powloka) System posiada mechanizm eksportu wartosci zmiennych srodowiskowych z lokalnych na globalne poprzez: export PAGER spowoduje, ze wartosc przyslania inne wartosci tej zmiennej dla innych uzytkowników, staje sie globalnaUstawienia wartosci zmiennych srodowiskowych dokonuje sie w pliku konfiguracyjny powloki /etc/profile - odczytywany na poczatku startu i czytanym nieco pózniej plikach ~/bash_profile, ~/.bash_login i ~/.profile umieszczonych w katalogu domowym uzytkownika, gdzie ~ (tylda) oznacza katalog domowy uzytkownika np. /home/yogazmienna UMASK sluzy okresleniu domyslnych praw do wszystkich nowo tworzonych plików i katalogów jako róznicy 777 i umask umask sparwdzenie wartoscilub umask 022 wszystkie nowo tworzone pliki beda mialy prawo dostepu 755mozna wyspecyfikowac inna wartoscistnieje odpowiedni wpis w pliku /etc/profile okreslajacy wartosc zmiennej

Page 50: Wprowadzenie do systemu Linux

7. Przekierowanie strumieni >, >>, <np.: ls -la > przeglad.txt domyslnie wynik polecenia ls czyli przeglad katalogu kierowany jest na ekran natomiast tu zostanie skierowany do pliku przeglad.txtcat oczekuje na tekst z klawiaturycat > lista.txtpobiera dane z klawiatury i do plikucat < przeglad.txtpobiera dane z pliku i przesyla na ekranmore lista.txt wydruk na ekranls -l | cat wyjscie jest jednoczesnie wejsciemls -l | less filtr, nastapi przekierowanie do programu i dopiero na ekran  8. Wyrazenia regularne dwa symbole globalne * i ?, gdzie * zastepuje dowolny ciag znaków? zastepuje dokladnie jeden znakmozna tez okreslac zakres wartosci znaku[1-3] dopuszczalne wartosci znaku od 1 do 3[a-k] dopuszczalne wartosci znaku od a do kmaja zastosowanie np.: przy przegladanie katalogów, kopiowaniu, kasowaniu plików grupami np.:ls -l [a-e]* wylistuja sie nazwy gdzie pierwszym znakiem w nazwie sa litery od a do e, reszta dowolnals - l [a-g][1-4]* wylistuja sie nazwy gdzie pierwszym znakiem w nazwie sa litery od a do g, drugim znakiem cyfry od 1 do 4, reszta dowolna

Page 51: Wprowadzenie do systemu Linux

Procesy w SO LinuxZ systemami unixowymi związane jest pojęcie procesu. W takim ujęciu proces rozumiany jest jako wykonywany w systemie program.Każdy proces charakteryzuje się pewnymi atrybutami :*przestrzeń adresowa,*licznik programu,*licznik stanu,* licznik rejestru,* deskryptory pliku (unikalny identyfikator pliku wykorzystywany przez system operacyjny)* dane procesu* zależności rodzinne*liczniki statyczneWynikiem obecności w systemie procesów jest to, że jądro systemu może nim sterować tak i może go ustawić w kilku stanach :*pracujący w trybie użytkownika (proces znajduje się na procesorze i wykonuje kod),* pracujący w trybie jądra (jądro wykonuje wywołanie systemowe, wykonane przez proces)* uśpiony (proces czeka na jakieś zdarzenie, np. na odczyt danych z dysku lub otrzymanie danych z sieci)* gotowy do wykonania (może być uruchomiony w każdej chwili, jednak nie ma jeszcze* przydzielonego procesora)*zombie (proces zakończył działanie i czeka na odebranie kodu powrotu przez proces macierzysty),Podstawowym poleceniem do zarządzania procesami przez użytkownika jest : psps [-] [lujsvmaxscewhrnu] [txx] [0 [+/-] k1 [[+/-] k2 …]] [pids]l - długi formatu - format użytkownika podaje nazwę użytkownika czas startm - wyświetla informacje o pamięcif - format drzewiastya - pokaż także procesy innych użytkownikówr - tylko pracujące procesy

Page 52: Wprowadzenie do systemu Linux

np.ps –ax – wyświetla wszystkie procesypstree – wyświetla drzewo procesu w systemieAby zobaczyć wszystkie procesy w systemie, używając standardowej składni:ps -eps -efps -eFps -elyAby wypisać drzewo procesów:ps -ejHps axjfAby wyświetlić informację o wątkach:ps -eLfps axmsAby wyświetlić informacje związane z bezpieczeństwem:ps -eo euser,ruser,suser,fuser,f,comm,labelps axZps –eMAby zobaczyć wszystkie procesy poza tymi działającymi jako root(rzeczywiste i efektywne ID):ps -U root -u root -NAby wyświetlić wszystkie procesy w formacie zdefiniowanym przez użytkownika:ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,commps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,commps -eopid,tt,user,fname,tmout,f,wchanW wielu przypadkach zachodzi potrzeba usunięcie przez użytkownika procesu z systemu UNIX. Użytkownik ma takie prawo w stosunku do swoich procesów natomiast użytkownik root do wszystkich.

Page 53: Wprowadzenie do systemu Linux

Polecenia do tego służące mają następującą składnię :kill [-s sygnał /-p] [-a] pid …np.Pozwala ono wysyłać sygnały do procesów (można używać nazw sygnałów lub ich numerów):kill -l - wyświetla dopuszczalne nazwy sygnałówkill -kill 1234 - wysłanie sygnału SIGKILL do procesu z pid=1234kill -9 1234 - to samo wyżej, bo SIGKILL ma nr 9kill -int 1234 - wysłanie sygnału SIGINT do procesu z pid=1234kill -2 1234 - to samo wyżej, bo SIGINT ma nr 2 Można wysyłać sygnał do większej liczby procesów np :kill -kill 0 - wysyła sygnał do wszystkich procesów w grupie procesów procesu wysyłającegokill -kill 1234 1235 - do dwóch procesów o podanych pid-achInne przykłady :kill -9 8606kill -0 8606killall –KILL tree - zakończenie procesukillall –HnP tree – restart procesuPID – identyfikator procesuTTY – terminalTIME – łączny czas procesora w formacie dd-hh:mm:ssCMD - polecenie (wraz z parametrami), które spowodowało uruchomienie procesu

Page 54: Wprowadzenie do systemu Linux

USER – identyfikator użytkownika będącego właścicielem procesu % CPU – procentowe zużycie procesora przez proces %MEM – procent użycia pamięci operacyjnej przez czas VS2- rzeczywisty rozmiar procesu w kilobajtachRSS - ilość fizycznej pamięci używanej przez procesSTAT – status procesuSTART - czas uruchomienia procesukill <PID> - wysyłanie sygnału TERM do procesu o numerze identyfikacyjnym PIDKill - <nr sygnału> <PID> -wysyłanie wskazanego procesu sygnału o podanym numerzekill – l – zwraca nazwy i numer sygnałów kill – l <nr sygnału> - zwraca nazwę sygnału o podanym numerzekill -9-1 - Zabicie wszystkich procesów, które można zabićProces o PID= -1 oznacza wszystkie procesy które wolno zabić poza procesem killkillall :-g- Zabija grupę procesów, do której należy podany proces–i- Pyta o zgodę przed zabiciem każdego procesu–v- Wypisuje komunikat o każdym udanym wysłaniu sygnału–w- Czeka aż zabite zostaną wszystkie wskazane procesy Może czekać bez końca jeśli proces zignorował sygnał lub przeszedł do stanu zombie np.killall –v mozilla

Page 55: Wprowadzenie do systemu Linux

Zalety LINUXA

Zalety Linuxa będą niemal identyczne jak systemu UNIX, gdyż jest on jego uboższym odpowiednikiem:1. Tak jak i UNIX, Linux jest systemem wielozadaniowym jak i wileoużytkowym2. 32 - bitowość 3. pamięć wirtualna (może wykorzystywać całość pamięci RAM, nie ma ograniczenia do 640k)4. całkowita kompatybilność z X Window (standardowy graficzny, unixowy interfejs użytkownika 5. obsługę oprogramowania GNU (rozprowadzany wraz z duża ilością darmowych programów unixowych z biblioteki Projektu GNU)

Linux jest alternatywą w świecie komercyjnych systemów operacyjnych. Jest uderzającym ciosem w komercyjne cesarstwo. Linux doskonałym, a co najważniejsze darmowym systemem operacyjnym.

Page 56: Wprowadzenie do systemu Linux

Zalety UNIX’a.

Najważniejszymi zaletami UNIX\'a jest wielozadaniowość i wieloużytkowość. Wielozadaniowość oznacza, że użytkownik może wykonywać wiele zadań równocześnie, a co za tym idzie pracować bardziej efektywnie. Druga cecha: wieloużytkowość daje możliwość korzystania z zasobów komputera więcej niż jednej osobie, co wspomaga pracę grupową bez ponoszenia dużych kosztów zakupu pojedynczych komputerów.

UNIX jest takim ważnym systemem ponieważ można go uruchomić na prawie każdym komputerze (w przeciwieństwie do Windows NT). Istnieje wiele wersji systemu UNIX dla różnych typów komputera: począwszy od komputerów osobistych (IBM PC i Macintosh) poprzez komputery średniej wielkości (VAX firmy DEC) aż do superkomputerów firmy Cray. W praktyce są tylko dwa komputery, na których niemożliwe jest uruchomienie tego systemu: starsze modele PC (np. PC XT) i systemy komputerowe do zadań specjalnych (np. AS/400).

Page 57: Wprowadzenie do systemu Linux

Chyba najważniejszą jego zaletą jest przede wszystkim darmowy dostęp do samego systemu operacyjnego jak i dużej liczby przeznaczonych dla niego aplikacji. Dostępność darmowego oprogramowania serwerów WWW, FTP i poczty elektronicznej sprawia że możliwe jest stworzenie serwera internetowego przy wydatkach jedynie na sprzęt oraz połączenie z Internetem. Przy tym możliwość o wiele elastyczniejszej konfiguracji niż w przypadku systemów np. firmy Microsoft sprawia że taki system ma o wiele mniejsze wymagania sprzętowe niż równoważna instalacja oparta np. na Windows NT. Kolejną zaletą takich rozwiązań jest ich duża stabilność: wiele instalacji wykorzystujących te systemy może działać w sposób nie wymagający interwencji użytkownika latami, a nawet dość poważne zmiany konfiguracji systemu nie wymagają jego restartowania - nie wprowadzając tym samym zakłóceń w codziennej pracy, podczas gdy niewiele systemów działających w oparciu o Windows NT może się poszczycić nieprzerwaną pracą dłuższą niż 1 rok a nawet najmniejsza zmiana w konfiguracji systemu wymaga jego restartu tym samym zaburzając pracę wszystkich użytkowników korzystających z sieci. Serwer sieci lokalnej

Wcale nie trzeba mieć połączenia z siecią Internet żeby w pełni wykorzystać zalety z posiadania darmowego systemu operacyjnego. Zarówno Linux jak i FreeBSD posiadają pakiety umożliwiające emulację podstawowych funkcji zarówno Windows NT jak i Novell Netware (m. in. udostępnianie plików oraz drukarek), co daje nie tylko możliwość stworzenia darmowego wariantu komercyjnego serwera sieciowego ale również pozwala połączyć w jednym serwerze funkcje zarówno Windows NT jak i Novell Netware przez co stacje robocze bez względu na to z jakiego protokołu korzystają mogą mieć dostęp do tych samych zasobów.

Page 58: Wprowadzenie do systemu Linux

Usługi uruchamiane ze startem systemu:

Bezwzględnie - potrzebne do prawidłowego działania komputera i systemu:

alsasound - Ładuje sterowniki ALSA i przechowuje/przywraca aktualne ustawienia miksera. Podsystem dźwięku, lepiej nie wyłączaj. dbus - DBus jest systemem do komunikacji między programami. Nie wyłączaj! haldaemon - Hal jest demonem przechowującym informacje o konfiguracji sprzętu. Nie wyłączać, jeżeli chcesz aby wszystko poprawnie działało. kbd - Ustawienia klawiatury Nie wyłączać. policykitd Struktura definiująca politykę dla komponentów systemu oraz dla części pulpitu. Jest to element używany przez HAL. resmgr Menadżer zarządzania urządzeniami np. terminal emulators, nagrywarki CD, skanery, midi playery. Domyślnie włączony. rpasswdd - Demon programu sprawdzającego poprawność pliku passwd. Nie wyłączać. syslog - Demon programu "wyrzucający" na konsole i do pliku informacje o pracy systemu. Nie wyłączać !! Podstawowe narzędzie do kontroli pracy systemu. xdm - Obsługa X-serwera Podczas uruchamiania podnosi się środowisko graficzne np. KDE, GNOME, Nie wyłączaj! xfs - Serwer czcionek systemu graficznego. Lepiej nie wyłączać, chyba, że domyślnie jest inaczej.

Page 59: Wprowadzenie do systemu Linux

Zależne od sprzętu - jeśli masz laptopa, drukarkę, dżojstik usługi muszą być włączone:

acpid - Demon ACPI - (ang. Advanced Configuration and Power Interface) - standard zarządzania energią opracowany przez firmy Intel, Micro$oft i Toshiba, który znacznie zwiększa możliwości oferowane przez APM. ACPI ustala jak BIOS, system operacyjny i urządzenia komunikują się nawzajem w sprawie poboru energii. Jeżeli nie używasz laptopa i procesorów z funkcją oszczędzania energii, możesz usługę wyłączyć. Jeśli masz laptopa musisz to koniecznie włączyć będzie dłużej pracował na bateriach. cups - Demon wydruku (tu komputer pełni role serwera plików i drukarek). Jeżeli nie masz drukarki, usługę możesz wyłączyć w innym wypadku włącz . evms - obsługa macierzy EVMS Domyślnie wyłączony. irq_balancer - Demon sterujący przerywaniami platformy wieloprocesorowej (dual core, quad core). Jeżeli nie masz procesorów wielordzeniowych - możesz wyłączyć w innym wypadku włącz. joystick - sterowniki dla dżojstika Jeżeli nie masz dżojstika, wyłącz w innym wypadku włącz. mdadmd - Demon monitorujący macierze raid1, raid5. Domyślnie wyłączony. microcode - Uaktualnia funkcje procesorów Intel'a Jeżeli używasz procesor inny niż firmy Intel - można wyłączyć ta usługę.

Page 60: Wprowadzenie do systemu Linux

network - Obsługa sieci, konfiguracja interfejsów i routingu. Jeżeli nie masz dostępu do żadnej sieci - możesz wyłączyć. nfs - NFS to usługa pozwalająca udostępniać zasoby dyskowe komputerom w sieci. Serwer udostępnia katalogi klientom, którzy mogą je podmontować i działać jak na lokalnym systemie plików. Domyślnie włączone, ale jak nic nie chcesz udostępniać, możesz wyłączyć. nfsboot - usługa uruchamiana wraz z nfs. Jak wyłączysz nfs, automatycznie wyłącza się nfsboot. nfsserver Uruchomienie serwera NFS. Domyślnie wyłączona. nscd - Name service cache daemon. Jeśli nie używasz komputera w roli serwera, można wyłączyć. Domyślnie wyłączony. openct - Włączenie obsługi kart chipowych - smart card. Domyślnie wyłączony. pcscd - Demon przechowujący informacje o kartach chipowych. Domyślnie wyłączony. powerd - Włącza monitoring UPS. Jeżeli nie masz tego typu urządzeń,które magazynują prąd aby możliwe było dokończenie np. edycji dokumentów i bezpieczne wyłączenie systemu i komputera upewnij się, że usługa jest wyłączona. powersaved - Funkcja zarządzania energią. Jeżeli nie używasz laptopa i procesorów z funkcją oszczędzania energii, możesz wyłączyć w innym wypadku włącz. portmap - Portmap RPC jest serwerem, który zamienia numery programowe RPC na numery portów protokołu TCP/IP (albo UDP/IP). Potrzebne jeżeli chcesz skonfigurować NIS, jezeli nie, możesz wyłączyć. raw - Obsługa tzw. surowych partycji (RAW) saslauthd - Cyrus-SASL (Simple Authentication and Security Layer) - metoda uwierzytelniania użytkownika wykorzystywana w protokole SMTP. Celem stosowania SASL (SMTP AUTH) jest umożliwienie wysyłania poczty poprzez serwer pocztowy, wyłącznie uprawnionym użytkownikom. Uwierzytelnienie polega na tym, że podobnie jak w przypadku pobierania poczty z serwera (POP3), użytkownik autoryzuje się podając swój identyfikator i hasło. Jeżeli nie masz zainstalowanego Postfixa, nie włączaj. smartd - Włącza funkcje S.M.A.R.T. który bada stan dysku w czasie uruchomienia komputera. Może się przydać smppd - Włącza smppd dla połączeń dial-up Nie korzystasz modemu, wyłącz snmpd - Simple Network Management Protocol (SNMP) standard protokołu używanego do nadzoru i zarządzania różnymi elementami sieci komputerowych takimi jak routery, przełączniki, komputery.

Page 61: Wprowadzenie do systemu Linux

Twój wybór - usługi opcjonalne:

earlykdm - Szybki start menadżera X-ów earlysyslog - Szybszy start usługi logowania do systemu. fbset - Framebuffer - bufor ramki, pozwala zwiększyć rozdzielczość konsoli ze standardowej 640x480 na większą. Zaletą tego rozwiązania jest "zaoszczędzenie" miejsca na monitorze dzięki czemu widzimy znacznie więcej niż przy trybie 80 na 25 znaków. Nie wyłączaj jeżeli chcesz aby Twój terminal tekstowy ładniej wyglądał cron - Program sterującym zadaniami w czasie. Jeżeli komputer nie pełni roli serwera, na którym muszą być wykonywane co jakiś czas określone procesy/procedury oraz jeśli nie masz procesora z funkcją oszczędzania energii, można wyłączyć. idmapd Włączenie mapowania NFSv4. Domyślnie wyłączony. ksysguard - Ksysguard jest menedżerem procesów i monitorem wydajności systemu dla KDE. Potrafi monitorować zarówno lokalny jak i zdalne komputery. Ksysguard otrzymuje informacje z tak zwanych czujników. Domyślnie wyłączony. lm_sensors Wykorzystuje czujniki obecne na współczesnych płytach głównych aby wyświetlić informacje o temperaturze, napięciach jak i ilości obrotów wiatraczka. Konfiguracja znajduję się w /etc/sysconfig/lm_sensors. Domyślnie wyłączony. ntp - Network Time Protocol to protokół internetowy umożliwiający synchronizację czasu pomiędzy komputerami, w szczególności synchronizację z zegarami atomowymi. NTP używa portu 123, jest też wersja z SSL korzystająca z portu 563. Domyślnie wyłączony, ale jak chcesz mieć dokładny zegar na komputerze, możesz włączyć. postfix - Mail Transport Agent program przekazujący pocztę. Na konto root przychodzą dosyć ważne komunikaty systemowe. Można nie wyłączać. random - Lepsze generowanie liczb losowych. rsyncd - Remote synchronization (zdalna synchronizacja) - protokół synchronizacji plików. Przez sieć wysyłany jest spis plików z hash-ami bloków (zwykle ok. 1 kB), po czym na drugiej maszynie program sprawdza, które z fragmentów już posiada. spamd - Włączenie funkcji filtrowania spamu. splash - Kolorowe tło podczas uruchamiania systemu. splash_early - Przerywa animacje po uruchomieniu sieci. sshd - Demon OpenSSH SSH. SSH, następca protokołu telnet służącego do terminalowego łączenia się ze zdalnym komputerem. SSH różni się od telnetu tym, że transfer wszelkich danych jest zaszyfrowany, oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. Jeżeli będziesz się zdalnie łączył z innym komputerem, zostaw włączone, jeżeli nie ,wyłącz. Nie używaj telnetu !!! Łącz się tylko używając protokołu 2 ssh. Jeżeli chcesz się zalogować jako root, najpierw zaloguj się na konto zwykłego użytkownika, a dopiero potem przez polecenie su przejdź na konto root.              

Page 62: Wprowadzenie do systemu Linux

ypbind - Wyszukuje serwery z domen NIS i zachowuje informacje związane z tą usługą. Raczej zbędne choć w specyficznych warunkach mogą być przydatne atd - Demon uruchamiania kolejkowe zadania w celu późniejszego wykonania. Nie uruchamiaj, nie potrzebne autofs - Demon uruchamia automatyczne montowanie plików systemowych. Domyślnie wyłączony. esound - Start usługi uruchamia zdalnego dostępu do karty dźwiękowej. Przed włączeniem skonfiguruj ustawienia serwera dźwięku: Network/Sound/Esound Domyślnie wyłączony xinetd - Następca inetd. Jest to tak zwany super serwer sieciowy. Jego zadaniem jest nasłuchiwanie na wybranych portach i przekazywanie przychodzących połączeń wybranym programom. 

Page 63: Wprowadzenie do systemu Linux

KONIECWYKONALI:

Marcin Jędryszczak Przemysław Włodarczyk

KLASA IV G