Wykład 2 – filozofia działania oraz podstawy obsługi systemów

Transkrypt

Wykład 2 – filozofia działania oraz podstawy obsługi systemów
Wykład 2 – filozofia działania oraz
podstawy obsługi systemów
unixowych na przykładzie GNU/Linux
➔
przegląd systemów unixowych, licencje oprogramowania,
(GPL,BSD), porównanie “filozofii” działania
➔
dystrybucje GNU/Linuxa
➔
struktura katalogów
➔
polecenia systemowe
➔
jądro systemu (ang. kernel), obsługa urządzeń, kompilacja
➔
konfiguracja środowiska sieciowego (netstat, ifconfig, ping, etc)
➔
zarządzanie prawami do uruchamiania programów
administratorskich (sudo)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
licencje oprogramowania – BSD
(Berkeley Software Distribution )
●
●
BSD – pochodna Unixa rozwijana
od lat 70-tych w Uniwersytecie
Kalifornijskim w Berkeley
Bardziej liberalna niż GPL (wolność
modyfikacji i dystrybuowania kodu
ale również możliwość
„zamknięcia” kodu, (warunek:
informacja o autorach)
1969
UNIX PDP7
1975
BSD 1
1980
GNU
1985
●
preferowana licencja (i system
operacyjny) dużych firm: Sun –
Solaris, Mac OS X – Apple, Juniper
OS
1990
Free BSD
1996
●
ciekawostka: Pionerski system
obsługujacy protokół IP
Solaris
Net BSD
GNU/Linux
Open BSD
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
licencje oprogramowania – GPL
(GNU Public Licence)
najbardziej “wolna” , tj. gwarantująca wolnosci:
0- uruchamiania;
1- analizowania i dostosowywania do własnych potrzeb
2- kopiowania (dystrybucji)
3- udoskonalania i publikowania poprawek
●
najpopularniejsza licencja wolnodostępnego oprogramowania
(dystrybucji Red Hat Linux 7, 55.30% było udostępnione na licencji
GPL )
Prace nad v3 : nacisk na DRM (Digital Restrictions Management) i
patenty na oprogramowanie
Zasada „copyleft”
Krytyka: licencja „wirusowa” ,zaraża wszelkie pochodne prace
●
Ciekawostka: Microsoft Windows Services for UNIX na GPL przez
Microsoft
●
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Dystrybucje GNU/Linuxa
●
●
●
●
Dystrybucja - zestaw programówdziałających pod systemem
GNU/Linux rozpowszechnianych łącznie i dający po zainstalowaniu
gotowy do użycia system. (wikipedia.pl)
oparte o “rdzeń” GNU, różniące się interfejsem graficznym, sposobem
obsługi, ideologia, wsparciem technicznym, cyklem aktualizacji, itp.
programy (jak i też pojedyncze biblioteki i całe podsystemy)
najczęściej dystrybuowane w postaci binarnej (tzw. pakietów) i
zarządzane przez managera pakietów pilnującego zależności
najbardziej znane: Debian,Fedora Core, Gentoo, Knoppix, Linspire,
Mandriva (dawniej Mandrake), PLD, Red Hat, Slackware, SUSE,
Ubuntu (lista wszystkich na www.distrowatch.com)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
struktura katalogów systemu
GNU/Linux
/bin/
/boot/
/dev/
/etc/
/home/
/lib/
/mnt/
/proc/
/sbin/
/tmp/
/var/
/usr/
<= podstawowe polecenia systemowe
<= pliki jąder ładowane przy uruchamianiu systemu
<= pliki specjalne jako interfejs do obsługi urządzeń
<= globalne pliki konfiguracyjne
<= katalogi domowe użytkowników
<= biblioteki systemowe
<= podmontowane napędy
<= pseudosystem plików jako interfejs do ustawien jadra
<= uslugi systemowe
<= katalog plików tymczasowych
<= dodatkowe dane (biblioteki, skrypty, itp) programow
<= dodatkowe programy
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
podstawowe polecenia i narzędzia
systemowe (unixowe)
●
zarządzanie systemem i użytkownikami
df, du
<= raport o zajętości dysku/katalogu
fuser
<= identyfikacja procesów używających podane zasoby
uname
<= informacje o systemie i kernelu
users,who
<= raport o aktualnie zalogowanych użytkownikach
last
<= raport o ostatnio zalogowanych użytkownikach
env
<= przegląd zmiennych systemowych
adduser,useradd,deluser,userdel <= zarządzanie użytkownikami
modprobe, rmmod, lsmod <= operacje na tzw. modułach, odp.: załadowanie/ usunięcie
z pamięci, listing
●
zarządzanie procesami
chroot
kill/killall/pkill
nice
ps, top
watch
<= umieszczanie procesu w środowisku izolowanym
<= zakończenie procesu po PIDzie/nazwie/atrybutach
<= modyfikacja priorytetu wykonywania procesu
<= listing uruchomionych procesów/ z odświeżaniem
<= podgląd na bieżąco działającego procesu
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
podstawowe polecenia i narzędzia
systemowe c.d.
●
zarządzanie plikami i systemem plików
chmod
<= zmiana uprawnień plików lub katalogów
chown
<= zmiana właściciela pliku
cp, mv, rm, shred ,dd
<= odpowiednio: kopiowanie, przenoszenie, usuwanie, bezpieczne usuwanie
plików, kopiowanie bloków danych
ln
<= tworzenie dowiązania między dwoma plikami
ls
<= listing plików w katalogu
mkdir
<= tworzenie katalogów
pwd
<= wypisanie bieżącego katalogu
mknod
<= tworzenie węzłów specjalnych (dostępu do urządzenia)
touch
<= zmiana znacznika czasowego (ang. timestamp) pliku
●
przetwarzanie tekstu
cat, tac
cut
grep
head,tail
sort
uniq
wc
●
<= wyświetlenie pliku/wypisanie liniami wstecz
<= wyświetlenie fragmentów tekstu
<= wyświetlenie linii tekstu zawierających dane wyrażenie
<= wyświetlenie poczatku/końca tekstu
<= sortowanie linii tekstu,
<= wyświetlenie tylko niepowtarzających się linii tekstu
<= zliczenie słów/bajtów/linii w tekście
pełna lista programów unixowych: http://en.wikipedia.org/wiki/List_of_Unix_programs
porównanie poleceń systemowych na różnych systemach unixowych: http://bhami.com/rosetta.html
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
obsługa urządzeń,
kompilacja jądra
●
●
●
Dostępność kodów
źródłowych umożliwia
selekcję wybranych
funkcjonalności jądra
uruchomienie menu
konfiguracyjnego:
make menuconfig
(w katalogu ze źrodłami
kernela - najczęściej
/usr/src/linux/ )
kompilacja:
make bzImage modules modules_install
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Podstawy konfiguracji środowiska
sieciowego systemu GNU/Linux
●
●
●
●
●
●
●
●
modprobe/lsmod/rmmod
ifconfig
route
netstat
ping, traceroute
<= zarządzanie modułem karty
sieciowej
<= konfiguracja interfejsu sieciowego
<= konfiguracja rutingu statycznego
<= wyświetlanie otwartych gniazd
UDP, połączeń TCP, tablicy rutingu,itp.
<= testowanie drożności tras
/etc/hosts
<=
/etc/resolv.conf
<=
/etc/hosts.{allow/deny} <=
rozwiazywanie nazw(stat.)
rozwiązywanie nazw(dyn.)
restrykcje dostępu do usług
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Ifconfig –
zarządzanie interfejsami sieciowymi
ifconfig <interfejs> <opcje>
<interfejs>
<opcje>
up/down
<IP>
netmask <maska>
arp
[-]promisc
mtu <N>
hw ether <MAC>
<= nazwa interfejsu (np. eth0, eth1, ppp0)
mogą przyjmować przykładowe wartości:
<=
włączanie/wyłączanie interfejsu
<=
numer IP przydzielony interfejsowi
<=
ustawienie maski sieciowej
<=
włączanie/wyłączanie używania
protokołu ARP
<=
włączanie/wyłączanie trybu
promiscous (przechwytywanie
wszystkich pakietów)
<=
ustawienie MTU
<=
ustawienie adresu MAC
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
route – zarządzanie trasami
route [add/del] <cel> <opcje>
<cel>
<= docelowa sieć lub stacja
<opcje>
mogą przyjmować przykładowe wartości:
gw GW
netmask M
dev IF
mss M
<=
<=
<=
<=
trasowanie pakietów poprzez bramkę GW
ustawienie maski sieciowej M
związanie trasy z podanym interfejsem
ustawienie MSS na M
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
route – przykład wyjścia polecenia
Destination
Gateway
Genmask
Flags Metric Ref
213.25.2.139
0.0.0.0
255.255.255.255 UH
0
0
192.168.0.0
0.0.0.0
255.255.255.0
U
0
0
0.0.0.0
213.25.2.139
0.0.0.0
UG
0
0
U
H
G
R
D
M
A
C
!
-
trasa jest zestawiona [up]
cel jest stacją [host]
użyj bramki [gateway]
reinstancjuj trasę na trasowanie dynamiczne
dynamicznie instalowana przez demona lub przekierowanie
modyfikowana z demona trasowania lub przekierowania
instalowana przez addrconf
wpis bufora podręcznego [cache]
trasa odrzucenia [reject]
Use
0
0
0
Iface
ppp0
eth0
ppp0
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
netstat – przykład wyjścia
polecenia (fragment)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q
tcp
0
0
tcp
0
0
tcp
0
0
tcp
0
22
tcp
131
0
tcp
0
0
udp
0
0
udp
0
0
Proto RefCnt Flags
unix 16
[]
unix
2
[ACC]
Local Address Foreign Address
State
0.0.0.0:8192
0.0.0.0:*
LISTEN
0.0.0.0:5222
0.0.0.0:*
LISTEN
192.168.0.5:80
0.0.0.0:*
LISTEN
83.26.26.21:3613
82.21.16.92:105
FIN_WAIT2
83.26.26.21:4247
80.108.9.23:2456 TIME_WAIT
83.26.26.21:4662
83.24.14.20:3414 ESTABLISHED
0.0.0.0:4666
0.0.0.0:*
127.0.0.1:53
0.0.0.0:*
Type
State
I-Node
Path
DGRAM
983
/dev/log
STREAM LISTENING 11375257 /var/run/mysqld.sock
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
/etc/hosts & /etc/resolv.conf –
przykłady
●
/etc/hosts
127.0.0.1
192.168.1.10
192.168.1.13
146.82.138.7
209.237.226.90
●
localhost
foo.mydomain.org foo
bar.mydomain.org bar
master.debian.org master
www.opensource.org
/etc/resolv.conf
domain kis.p.lodz.pl
search kis.p.lodz.pl lab.kis.p.lodz.pl
nameserver 127.0.0.1
nameserver 194.204.159.1
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
hosts.{allow/deny}
hosts.allow i hosts.deny to pliki definiujące restrykcje dostępu
do lokalnego komputera według kryteriów:
●
wywoływany program (demon)
●
adres źródłowy połączenia
Kolejność wpisów ma znaczenie!
(sprawdzanie w kolejności:
hosts.allow => hosts.deny => przyjęcie połączenia)
Można nastawić wykonanie komendy przy trafieniu!
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
hosts.{allow/deny} - przykłady
/etc/hosts.allow
in.tftpd: LOCAL, host.domain
telnet:
10.0.0.8, .sub.domain
(echo „uwaga!”)
ALL :
spawn /usr/bin/mail
/etc/hosts.deny
Polecenie
wywoływane
(demon)
ALL:
Źródło
połączenia
Uruchomienie
programu
(opcjonalne)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
sudo – co to takiego?
Sudo (ang. 'superuser do') to program stosowany w
systemach operacyjnych GNU/Linux, Unix i
podobnych, w celu umożliwienia użytkownikom
uruchomienia aplikacji, normalnie
zarezerwowanych dla administratora.
(źródło: http://pl.wikipedia.org)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Sudo – jak to działa?
Działanie sudo opiera się na zczytaniu pliku
konfiguracyjnego /etc/sudoers w którym można
definiować restrykcje wykonywania poleceń według:
●
Komputera użytkownika
●
Loginu użytkownika
●
Uruchamianej komendy
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Sudo – podstawowa składnia
Podstawowa składnia /etc/sudoers:
użytkownik komputer = (uruchom-jako-użytkownik) komenda
Realny przykład /etc/sudoers:
janek localhost = /usr/bin/ftp
Z prawami administratora (!)
piotrek server = (krzysiek) /usr/bin/last
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Sudo - aliasy
Sudo zezwala na używanie tzw. aliasów przydatnych
przy ustalaniu wielu wartości poszczególnie dla pól:
●
nazwy użytkownika:
●
User_Alias PRACOWNICY = janek, krzysiek
nazwy komputera:
●
Host_Alias SERWERY= moj_serwer, 125.0.0.0/8
Komendy
●
Cmnd_Alias DRUK = /usr/sbin/lpc, /usr/bin/lprm
Nazwy użytkownika 'uruchom jako'
●
Runas_Alias ADMINI = root , db-operator
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Sudo – przykład aliasów
Przykład zastosowania aliasów w /etc/sudoers:
User_Alias
FULLTIMERS = millert, mikef, dowdy
Runas_Alias DB = oracle, sybase
Host_Alias
Cmnd_Alias
CUNETS = 128.138.0.0/255.255.0.0
KILL = /usr/bin/kill
FULLTIMERS CUNETS = (DB) KILL
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Tematyka Wykładu 2 –
podsumowanie
➔
przegląd systemów unixowych, licencje oprogramowania,
(GPL,BSD), porównanie “filozofii” działania
➔
dystrybucje GNU/Linuxa
➔
struktura katalogów
➔
polecenia systemowe
➔
jądro systemu (ang. kernel), obsługa urządzeń, kompilacja
➔
konfiguracja środowiska sieciowego (netstat, ifconfig, ping, etc)
➔
zarządzanie prawami do uruchamiania programów
administratorskich (sudo)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Podobne dokumenty