LSK1 Linux wyklad2

background image

Podstawowe usługi systemu

Lokalne Sieci Komputerowe 1

background image

Plan wykładu

init,

• getty,

• login

• telnet,

• ssh,

• syslog

• cron i at

background image

Inicjalizacja systemu Linux

Program

init kontroluje proces ładowania trybu

wieloużytkownikowego, m.in. uruchamia
wszystkie zaplanowane skrypty.

• Podczas normalnego działania

init sprawdza

czy działa

getty (aby umożliwić użytkownikom

zalogowanie), adoptuje osierocone procesy.

• Podczas zamykania systemu

init jest

odpowiedzialny za zabicie wszystkich procesów,
oraz inne skonfigurowane rzeczy.

background image

init

Czynności przygotowujące system do pracy

wykonywane przez proces init:

• sprawdzanie spójności systemów plików za pomocą

polecenia

fsck,

• montowanie lokalnych dysków,

• startowanie UNIX-owych procesów usługowych

• uruchamianie demonów sieciowych i montowanie

(o ile są dostępne)

zdalnych systemów plików,

• umożliwienie użytkownikom włączania się do systemu

przez wystartowanie procesów

getty.

background image

Poziomy pracy – System V

W systemach UNIX istnieje szereg z góry zdefiniowanych
stanów systemu, określanych jako poziomy pracy
(run-levels) identyfikowanych jednoznakową nazwą
(zwykle cyfrą).

background image

Poziomy pracy – System V

Poziom pracy

Nazwa i wykorzystanie

0

Wyłączony: warunki, w których można bezpiecznie odłączyć zasilanie.

1 (s lub S)

Tryb jednoużytkownikowy lub administracyjny (w wielu wersjach nierozróżnialne)

2

Tryb wieloużytkownikowy: normalny stan działania pojedynczego systemu, nie
skonfigurowanego w sieci.

3

Stan dostępu do zdalnych plików. Poziom 3 jest sieciowym poziomem pracy systemu.

4

Stan konfigurowalny: (nie używany)

5

Stan firmowy: stosowany w celu wykonania niektórych czynności konserwacyjnych.

6

Restart systemu.

background image

plik /etc/inittab

• Plik

inittab opisuje, które procesy powinny

zostać uruchomione przez proces

init podczas

startu systemu. Każda linia w pliku

inittab jest

zapisana w następującym formacie:

id : runlevels : action : process

• id – etykieta jednoznacznie identyfikująca linię
• runlevel - lista poziomów pracy
• action - akcja, która powinna zostać podjęta
• process - proces, który zostanie uruchomiony

background image

plik /etc/inittab (pole action)

initdefault - domyślny poziom pracy systemu

boot - wykonywana podczas startu systemu

bootwait - wykonywana podczas startu systemu, init czeka na jej
zakończenie

sysinit - wykonywana przed akcjami typu boot oraz bootwait

wait - wykonywana w chwili przejścia na określony polem runlevel
poziom pracy, proces

init czeka na jej zakończenie

once - wykonywana w chwili przejścia na określony polem runlevel
poziom pracy

respawn - proces zastaje automatycznie wznowiony po zakończeniu
działania (np. getty)

ctrlaltdel - wykonywana po naciśnięciu przez użytkownika
kombinacji klawiszy Alt+Ctrl+Delete

background image

/etc/rc*.d

• Nazwy wszystkich plików w takim katalogu rozpoczynają się od liter

"

S" lub "K", po których następuje dwucyfrowa liczba, a następnie

opisowy fragment nazwy.

• Skrypty "

rcn" wykonują pliki zaczynające się na "K", w kolejności

alfabetycznej, a następnie, również alfabetycznie, pliki

S

• Pliki na "

K" używane są zwykle w celu zabijania procesów i

wykonywania innych związanych z tym czynności.

• Pliki z nazwą rozpoczynającą się od litery "

S" odpowiadają za

startowanie procesów i wykonywanie pozostałych funkcji
inicjujących.

• Pliki w katalogach "

rc*.d" są z reguły linkami do plików w katalogu

"

/etc/init.d", który stanowi podstawowe miejsce dla skryptów

inicjujących.

background image

Plan wykładu

• init,

getty,

• login

• telnet,

• ssh,

• syslog

• cron i at

background image

getty

• getty jest programem zarządzającym fizycznymi lub wirtualnymi

terminalami. Po wykryciu połączenia, monituje o podanie nazwy
użytkownika i uruchamia program login w celu uwierzytelnienia
użytkownika

• Pierwotnie, w systemach Unix, getty obsługiwał połączenia terminali

szeregowych podłączonych do hosta. „tty” w nazwie oznacza
teletype (dalekopis), ale obecnie oznacza dowolny terminal
tekstowy

• Komputery pracujące pod kontrolą systemów uniksowych, nawet

jeśli nie świadczą usługi zdalnego logowania, wciąż korzystają z
getty do logowania do virtualnej konsoli

• Zamiast programu login, getty może być skonfigurowany przez

administratora tak, by uruchamiał dowolny inny program, np. demon
ppp do zapewnienia wdzwanianego dostępu do internetu.

background image

Plan wykładu

• init,

• getty,

login

• telnet,

• ssh,

• syslog

• cron i at

background image

login

• Program jest odpowiedzialny za autoryzację użytkownika oraz

inicjalizację jego środowiska - ustawienie odpowiednich praw
dostępu do terminala, uruchomienie powłoki, etc.

• Częścią inicjalizacji środowiska jest wyświetlenie pliku /etc/

/etc/

/etc/

/etc/motd

motd

motd

motd

(można zablokować umieszczając plik .

.

.

.hushlogin

hushlogin

hushlogin

hushlogin w katalogu

domowym).

• Plik /etc/

/etc/

/etc/

/etc/nologin

nologin

nologin

nologin blokuje wszelkie próby zalogowania się (jest

zazwyczaj tworzony przez shutdown

shutdown

shutdown

shutdown). login

login

login

login odmawiając wyświetli

zawartość tegoż pliku.

• login

login

login

login zapisuje wszelkie niepoprawne próby zalogowania się
poprzez syslog

syslog

syslog

syslog. Loguje również wszelkie logowania dokonane

przez roota, umożliwiając w ten sposób wytropienie włamywaczy.

background image

login

• Aktualnie zalogowani użytkownicy umieszczani są w

/

/

/

/var

var

var

var/run/

/run/

/run/

/run/utmp

utmp

utmp

utmp. Plik ten przy każdym restarcie systemu jest

usuwany. Polecenia takie jak: who

who

who

who, w

w

w

w opierają się na jego

zawartości.

• Wszelkie poprawne logowania się zapisywane są w /var/log/wtmp.

Co jakiś czas należy go usunąć –
nie istnieją żadne ograniczenia co do jego rozmiaru.
Program last

last

last

last służy do przeglądania pliku wtmp

wtmp

wtmp

wtmp.

• utmp

utmp

utmp

utmp i wtmp

wtmp

wtmp

wtmp są w formacie binarnym przez co przeglądanie ich

zawartości wymaga specjalnych programów.

background image

Proces logowania

Logowanie się poprzez terminale:
interakcja pomiędzy: init, getty,

login i powłoką.

Ź

ródło: The Linux System Administrators' Guide

http://www.linuxpl.org/SAG/

background image

Plan wykładu

• init,

• getty,

• login

telnet,

• ssh,

• syslog

• cron i at

background image

telnet

Telnet jest najstarszą i najbardziej elementarną usługą
internetową. Został opisany w dokumentach RFC numer
RFC 854 i RFC 855

Usługa telnet umożliwia pracę na zdalnym komputerze.
Uruchomia się ją poprzez wpisanie polecenia:

telnet adres

Po nawiązaniu połączenia telnet wyświetli nam
informację o wersji systemu operacyjnego serwera, jego
nazwie oraz numerze wirtualnego terminala (np. ttyp0,
ttyp1, ttyp2, itd…) Następnie pojawi się monit o podanie
nazwy użytkownika oraz hasła (login i password).

background image

telnet

• Usługa telnet często implementowana jest do

urządzeń aktywnych sieci (switche, routery) w
celu ułatwienia ich konfiguracji.

• Połączenie tego typu nie jest szyfrowane, a więc

możliwe do podsłuchu. Z tego powodu częściej
stosuje się jego następcę czyli

SSH.

background image

Plan wykładu

• init,

• getty,

• login

• telnet,

ssh,

• syslog

• cron i at

background image

SSH (secure shell)

• SSH to tylko następca protokołu telnet. W SSH

transfer wszelkich danych jest zaszyfrowany,
oraz możliwe jest rozpoznawanie użytkownika na
wiele sposobów.

• 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 itp.

• Wspólną cechą wszystkich tych protokołów jest

identyczna z ssh technika szyfrowania danych i
rozpoznawania użytkownika.

background image

Plan wykładu

• init,

• getty,

• login

• telnet,

• ssh,

syslog

• cron i at

background image

Syslog - wprowadzenie

• Program Syslog jest jednym z najważniejszych

narzędzi systemowych.

• Umożliwia rejestrowanie zdarzeń zachodzących

w systemie przy pomocy zcentralizowanego
mechanizmu.

• Pozwala na rejestrowanie informacji

pochodzących z następujących źródeł:

– zgłoszeń przekazywanych przez bibliotekę systemową

– informacji pochodzących od jądra systemu.

background image

Syslog - architektura

• Przyjmowaniem informacji zgłaszanych przez bibliotekę systemową

zajmuje się demon syslogd.

• Aplikacje, najczęściej różne demony, przekazują informacje poprzez

standardową funkcję syslog(3). Są one następnie przekazywane do
demona syslogd, który w zależności od ich typu i priorytetu, zapisuje
je w odpowiednich plikach, tak zwanych plikach rejestrowych (ang.
log files).

• Każdy wpis do pliku rejestrowego dokonywany przez syslogd zawiera

informacje dotyczące czasu jego powstania, maszyny i procesu.

• Raporty od jądra systemu Linux zbiera demon klogd. Po opatrzeniu

ich informacjami o typie i priorytecie zostają przesłane do syslogd.

background image

Syslog - architektura

Ź

ródło: http://home.agh.edu.pl/~gjn/dydaktyka/papers/GJN-Cron/GJN-Syslog.html

background image

Syslog – współpraca z innymi programami

• Na rysunku widać, że podstawowy mechanizm generowania raportów

zapewnia aplikacjom biblioteka systemowa, która udostępnia trzy
funkcje:

– openlog() - otwarcie komunikacji (stworzenie deskryptora),
– syslog()

- przesłanie wiadomości,

– closelog() - zamknięcie komunikacji.

• Z tych funkcji korzystają demony i aplikacje pracujące w systemie.

• Możliwe jest przesyłanie wiadomości do Syslog również z poziomu

skryptów, na przykład skryptów w sh.

• Wygodnie jest do tego wykorzystać program logger, który wysyła

informacje poprzez syslogd.

• W skryptach napisanych w języku Perl można użyć pakietu

Sys::Syslog, który jest interfejsem do opisanych powyżej wywołań
funkcji systemowych.

background image

Konfiguracja syslogd

Cała konfiguracja Syslog znajduje się w pliku
/etc/syslog.conf.

Jest to plik tekstowy, zawierający reguły według
których Syslog sortuje informacje i zapisuje je do
różnych plików rejestrowych.

Każda linijka pliku jest osobną regułą, na którą
składają się dwa pola:

(1)

selektor (ang. selector)

(2)

działanie (ang. action).

background image

Konfiguracja syslogd - selektor

Pole „selektor” ma dwie części rozdzielone kropką, które

określają rodzaj rejestrowanego komunikatu:

funkcja (facility) wskazuje na źródło komunikatu i może
mieć następujące wartości: auth, authpriv, cron,
daemon, kern, lpr, mail, mark, news, syslog, user, uucp,
local0-local7.

priorytet (priority) określa jego stopień ważności (od
najniższego): debug, info, notice, warning, err, crit,
alert, emerg.

background image

Konfiguracja syslogd – selektor (2)

Dodatkowo w polu „selektor” można stosować następujące

znaki:

• przecinek (

,) - grupuje kilka typów „funkcji”, którym

odpowiada to samo „działanie”, w tym przypadku
„priorytet” jest ignorowany,

• średnik (

;) - pozwala na grupowanie kilku selektorów,

którym odpowiada to samo działanie.

• gwiazdka (

*) - może zastępować pola „funkcja” oraz

„priorytet” i oznacza „dla każdej wartości tego pola”.

background image

Trzeba pamiętać, że

priorytet oznacza wszystkie

komunikaty o priorytecie nie niższym niż podany!
Np. priorytet err oznacza komunikaty o
priorytetach: err, crit, alert i emerg

Możliwe jest jednak podawanie innego rodzaju
zakresów priorytetów, wykorzystując znak
równości (=) i wykrzyknika (!).

background image

Konfiguracja syslogd – działanie

Wskazuje co ma się dziać z komunikatami określonymi przez selektor:

• nazwa pliku - komunikaty są dopisywane do pliku, poprzedzenie

nazwy minusem powoduje wywołanie sync() po dopisaniu każdego
komunikatu,

• nazwa terminala - przesyła komunikaty na wybrane terminale,
• |nazwa potoku (ang. named pipe) - komunikaty są przesyłane do

kolejki FIFO (na przykład stworzonej przy pomocy mkfifo), skąd
mogą być odbierane przez inny program,

• @nazwa maszyny - Syslog będzie przesyłał komunikaty do innej

maszyny w sieci (na port 514/UDP),

• nazwa użytkownika - komunikaty będą wyświetlane na terminalu

użytkownika (jeżeli zalogowany). Można podać listę nazw
użytkowników rozdzielonych przecinkami, lub podać gwiazdkę (*).

background image

syslog – organizacja plików

Pliki rejestrowe przechowuje się w katalogu /var/log.

Dla większości podstawowych źródeł komunikatów warto

przeznaczyć osobne pliki o nazwie odpowiadającej funkcji:

syslog.* -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
lpr.* /var/log/lpr.log
user.* /var/log/user.log
uucp.* /var/log/uucp.log
local.* /var/log/local.log

background image

syslog – organizacja plików (2)

Informacje dotyczące bezpieczeństwa i autoryzacji warto umieścić w

osobnym podkatalogu.

auth,authpriv.* -/var/log/security/auth.log

Po każdym wpisie do pliku auth.log będzie wywoływana funkcja sync(),

aby upewnić się, że dane znalazły się natychmiast na dysku.

Jeżeli na maszynie pracuje serwer pocztowy komunikaty pochodzące od

niego można podzielić na kilka grup.

mail.info

/var/log/mail/mail.info

mail.warn

/var/log/mail/mail.warn

mail.err

-/var/log/mail/mail.err

background image

syslog – organizacja plików (2)

Poniższy przykład pokazuje jak można dokładnie rozdzielić grupy
komunikatów w zależności od priorytetu.

kern.* /var/log/kernel/kern.all
kern.=debug

/var/log/kernel/kern.debug

kern.info;kern.!err

/var/log/kernel/kern.info-warning

kern.err

/var/log/kernel/kern.err-emerg

Wszystkie informacje od jądra są przekazywane do pliku kern.all.
Kolejne reguły wysyłają do określonych plików odpowiednio: te i
tylko te, które mają priorytet debug, komunikaty o priorytecie od
info do warning, oraz te o priorytecie od err do emerg.

background image

Plan wykładu

• init,

• getty,

• login

• telnet,

• ssh,

• syslog

cron i at

background image

Cron

• System Cron składa się z dwóch podstawowych

części: serwera i klienta.

• Serwer, czyli demon crond, pracuje cały czas w

systemie i na podstawie systemowych plików
konfiguracyjnych oraz konfiguracji użytkowników
cyklicznie uruchamia zadania.

• Program klient nosi nazwę crontab i służy do

edycji pliku konfiguracyjnego użytkownika.

background image

crontab

• Polecenie korzysta z zewnętrznego edytora do edycji

pliku. Uruchamiany edytor można wybrać przy pomocy
zmiennej VISUAL lub EDITOR. Przeważnie domyślnym
edytorem jest VI.

• Podstawowe wywołania crontab to:

– crontab -e - edycja pliku,
– crontab -l - wyświetlenie pliku,

– crontab -r - usunięcie pliku,
– crontab -u user {-e|-l-r} – praca z plikiem zadanego użytkownika

- wywołanie tylko dla administratora,

– crontab plik - użycie gotowego pliku jako crontab.

background image

crontab

• Jedna linia opisuje jedno zadanie i składa się z sześciu

pól, rozdzielonych białymi spacjami.

• Pola w każdej linii oznaczają kolejno: minutę, godzinę

dzień miesiąca, miesiąc, dzień tygodnia, ostatnie to
nazwa polecenia do wykonania.

• Gwiazdka w miejscu wartości oznacza: „dla każdej

wartości pola”.

• W danym polu można podawać kilka wartości

rozdzielonych przecinkami, natomiast użycie znaku „-”
pozwala na podanie zakresu wartości.

• Podanie po zakresie znaku „/” i kolejnej wartości

umożliwia podanie kroku w obrębie zakresu.

background image

crontab - przykłady

0 * * * * polecenie

uruchomi polecenie co godzinę

0 8 * * * polecenie

spowoduje wykonanie polecenie codziennie o 8:00

0,20,40 8-16 * * * polecenie

co dwadzieścia minut, między 8 a 16

background image

crontab - przykłady

10 * 5 * * polecenie

co godzinę każdego piątego dnia miesiąca

20-40 0,8,16 1-30/2 * * polecenie

od 0:20 do 0:40 co minutę, następnie od 8:20 do 8:40 co

minutę (podobnie dla 16), co dwa dni

30 6 10 * 1 polecenie

10. dnia miesiąca o 6:30 oraz w każdy poniedziałek.

(pola dzień miesiąca i tygodnia łączą się)

background image

?

jaki efekt przyniesie podanie 5 gwiazdek w polu czasu?

* * * * * polecenie

background image

Cron z perspektywy administratora

• Klient może być uruchamiany przez użytkownika systemu do edycji

jego własnego pliku.

• Administrator ma możliwość edycji pliku dowolnego użytkownika, w

tym użytkowników systemowych, podając w poleceniu opcję -u.

• Wszystkie pliki crontab znajdują się w jednym katalogu, przeważnie

/var/spool/cron/crontabs.

• Każdemu użytkownikowi, który założył własny crontab odpowiada

plik o takiej nazwie jak nazwa jego konta.

• Po uruchomieniu polecenia crontab, nie edytuje się plików z tego

katalogu, lecz ich kopie. Po sprawdzeniu składni pozbawiona błędów
składniowych nowa wersja crontaba jest kopiowana do właściwego
pliku w katalogu /var/spool/cron/crontabs.

background image

/etc/crontab

• Oprócz plików użytkowników system Cron ma jeden

systemowy plik konfiguracyjny, /etc/crontab, który
może być edytowany bezpośrednio przez administratora.

• Typowy przykład takiego pliku jest pokazany poniżej:

# /etc/crontab: system-wide crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user

command

25 6 * * * root

run-parts --report /etc/cron.daily

47 6 * * 7 root

run-parts --report /etc/cron.weekly

52 6 1 * * root

run-parts --report /etc/cron.monthly

background image

Architektura systemu Cron

Ź

ródło: http://home.agh.edu.pl/~gjn/dydaktyka/papers/GJN-Cron/GJN-Cron.html

background image

At i batch

at i batch czytają ze standardowego wejścia lub
podanego pliku polecenia, które mają zostać
wykonane w terminie późniejszym przy użyciu /bin/sh.

at wykonuje polecenia o zadanym czasie.

atq pokazuje oczekujące zadania użytkownika; w
przypadku roota wyświetlane są zadania wszystkich
użytkowników.

atrm usuwa zadania o zadanych identyfikatorach.

batch wykonuje polecenia, gdy pozwala na to
poziom obciążenia systemu.

background image

At - przykłady

at 4pm + 3 days

at 10am Jul 31

at 1am tomorrow

specyfikację czasu można znaleźć w:

/usr/doc/packages/at/timespec

background image

Literatura

AEleen Frisch - Unix - administracja systemu (wyd III). Read Me, Warszawa
2003

http://home.agh.edu.pl/~gjn/wiki/_media/dydaktyka:unix:gjn-syslog.pdf

http://home.agh.edu.pl/~gjn/wiki/_media/dydaktyka:unix:gjn-cron.pdf

The Linux System Administrators' Guide - http://www.linuxpl.org/SAG/


Wyszukiwarka

Podobne podstrony:
LSK1 Linux wyklad4
LSK1 Linux wyklad4
Linux wykłady SSH
Linux Wyklady
Linux Wykłady, wyklad 08
Linux wykłady SSH
Napęd Elektryczny wykład
wykład5
Psychologia wykład 1 Stres i radzenie sobie z nim zjazd B
Wykład 04
geriatria p pokarmowy wyklad materialy
ostre stany w alergologii wyklad 2003
WYKŁAD VII
Wykład 1, WPŁYW ŻYWIENIA NA ZDROWIE W RÓŻNYCH ETAPACH ŻYCIA CZŁOWIEKA
Zaburzenia nerwicowe wyklad
Szkol Wykład do Or

więcej podobnych podstron