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: errcritalert 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/