B. Đorđević, D. Pleskonjić, N. Maček: “Operativni sistemi: UNIX i Linux”, Viša elektrotehnička škola, Beograd, 2004., ISBN 86-85081-03-3
Ova knjiga od 423 strane je na srpskomjeziku i pokriva prilično detalje na temu korišćenja i administracije operativnig sistema Unix i Linux. Namenjena je naprednijim korisnicima.
Sadržaj knjige:
Uvod u UNIX i Linux operativne sisteme
Istorijat UNIX operativnog sistema
Vrste UNIX sistema
Linux operativni sistem
GNU/Linux i Open Source Software
Linux distribucije
Opšti pregled Linux sistema
Linux kernel
Struktura Linux sistema
Modularni kernel
Značajni delovi kernela
Upravljanje procesima
Procesi i niti
Dodeljivanje procesora procesima
Komunikacija između procesa
Upravljanje memorijom
Izvršavanje korisničkih programa
Ulazno - izlazni sistem
Sistemi datoteka i aktivno UNIX stablo
Mrežne strukture
Osnovni servisi Linux sistema
init
Prijavljivanje sa terminala
syslog
Periodično izvršavanje komandi
Grafički korisnički interfejs
Mrežni rad
Prijavljivanje sa mreže
Deljenje datoteka i mrežni sistemi datoteka
Elektronska pošta
Štampanje
Blok uređaji i administracija sistema datoteka
Blok uređaji
Hard diskovi
Fizičke osobine i geometrija diskova
IDE i SCSI diskovi. Specijalne datoteke koje predstavljaju uređaje.
RAID (redundantni niz jeftinih diskova)
Flopi diskovi
Formatiranje magnetnih medijuma
Formatiranje disketa
CD-ROM uređaji
Magnetne trake
Podela diskova na particije
Boot sektori, particione tabele i tipovi particija
Master Boot Record, boot sektori i particione tabele
Extended i logičke particije
Tipovi particija
Podela diska na particije
fdisk
cfdisk
Specijalne datoteke i particije diska
Sistemi datoteka
UNIX sistemi datoteka
Dodeljivanje prostora datotekama
Rupe u datotekama
Konvencija o imenima objekata sistema datoteka
Tipovi sistema datoteka
Sistemi datoteka sa dnevnikom transakcija (Journaling)
Ext3 sistem datoteka i režimi vođenja dnevnika transakcija
Reiser FS
XFS
JFS
Koji sistem datoteka treba koristiti ?
Kreiranje sistema datoteka
Parametri UNIX sistema datoteka
Aktiviranje i deaktiviranje sistema datoteka
Montiranje sistema datoteka na aktivno UNIX stablo
root i user sistemi datoteka
/etc/fstab i auto-mount
Pregled aktiviranih sistema datoteka
Deaktiviranje sistema datoteka
Dozvole za aktiviranje sistema datoteka
Provera i oporavak sistema datoteka
Logički defekti i provera integriteta sistema datoteka
lost+found direktorijum
Fizički defekti i provera ispravnosti površine diska
Defragmentacija
Ostali programi za rad sa sistemima datoteka
Rad sa diskovima bez sistema datoteka
Komanda dd (disk-to-disk copy)
Virtuelna memorija (swap)
Aktivno UNIX stablo
root sistem datoteka
/etc direktorijum
/usr sistem datoteka
/var sistem datoteka
/proc sistem datoteka
Korisnici i grupe
Korisnički nalozi
Kreiranje korisničkih naloga
/etc/passwd
/etc/shadow
Članstvo u grupama
Dodela identifikatora korisnicima i grupama (UID i GID)
Inicijalno okruženje - etc/skel direktorijum
Kreiranje korisničkih naloga bez upotrebe pomoćnih programa
Promena parametara korisničkih naloga
Privremena zabrana prijavljivanja na sistem
Uklanjanje korisnika
Identifikacija korisnika
Privremeno prijavljivanje na sistem pod drugim imenom
Stvarni i efektivni identifikatori korisnika (RUID i EUID)
Kontrola pristupa na nivou sistema datoteka
Vlasnički odnosi i prava pristupa
Prava pristupa u sistemu datoteka
Kategorije pristupnih prava
Problem unije vlasničkih kategorija
Značenje prava pristupa za datoteke i direktorijume
Određivanje pristupa za datoteke i direktorijume
Podrazumevana prava pristupa (umask)
Promena vlasništva i pristupnih prava
Promena pristupnih prava
Simbolički režim
Oktalni režim
Promena vlasničkih odnosa
Promena vlasnika
Primarne i sekundarne grupe
Promena grupe kojoj objekat pripada
Specijalni atributi datoteka i direktorijuma
setuid (SUID) i setgid (SGID)
Sticky bit (t)
Specijalni atributi datoteka na ext2/ext3 sistemu datoteka
Disk kvote
Administracija kvota na Linux sistemu
Preduslovi za postavljanje kvota
Postavljanje kvota
Datoteke quota.user i quota.group
Dodeljivanje kvote korisniku
Dodeljivanje kvote grupama
Dodeljivanje jednakih kvota većem broju korisnika
Ostali alati za rad sa kvotama
Rad sa datotekama iz komandne linije
Komandni interpreter (shell)
Funkcije komandnog interpretera
Interpretacija komandne linije
Inicijalizacija programa
Redirekcija ulaza i izlaza
Povezivanje komandi u pipeline
Zamena imena datoteka
Rukovanje promenljivim i kontrola okruženja
Shell programiranje
Dodatne mogućnosti Bourne-again shella
Korišćenje kontrolinih karaktera
Alternativno ime komande (alias)
Ponavljanje komandne linije (history)
Modifikacija komandne linije
Kompletiranje imena datoteka
Shell promenljive i prilagođeni prompt
Lokalne promenljive
Promenljive okruženja
Prilagođavanje odziva (prompt) komandnog interpretera
Inicijalizacione datoteke komandnog interpretera
Korisničke inicijalizacione datoteke
Poređenje poznatih komandnih interpretera
Bourne shell (sh)
C shell (csh)
Bourne-again shell (bash)
Korn shell (ksh)
Osnovne komande za rad sa datotekama
Dobijanje pomoći
Lokatori komandi
Prikazivanje informacija o sistemu
Određivanje tipa datoteke
Tipovi datoteka
Upotreba komande file
Komanda strings
Kopiranje, pomeranje i brisanje datoteka
Kopiranje datoteka i direktorijuma
Kopiranje jedne datoteke
Kopiranje grupe datoteka iz istog direktorijuma
Rekurzivno kopiranje direktorijumskog stabla
Relacioni odnosi originala i kopije
Potrebni i dovoljni uslovi za kopiranje datoteke
Opcije komande cp
Primeri korišćenja komande cp
Pomeranje datoteka i direktorijuma
Promena imena i/ili pomeranje jedne datoteke
Pomeranje grupe datoteka iz istog direktorijuma
Potrebni i dovoljni uslovi za promenu imena datoteke
Potrebni i dovoljni uslovi za pomeranje datoteke
Opcije komande mv
Brisanje datoteka
Brisanje jedne datoteke
Brisanje grupe datoteka iz istog direktorijuma
Rekurzivno brisanje direktorijumskog stabla
Potrebni i dovoljni uslovi za brisanje datoteke
Opcije komande rm
Linkovi
Hard linkovi
Kreiranje hard linkova
Osobine hard linkova
Primer kreiranja i upotrebe hard linkova
Simbolički linkovi
Kreiranje simboličkih linkova
Osobine simboličkih linkova
Primer kreiranja i upotrebe simboličkih linkova
Upotreba opcije -d komande cp (no-dereference)
Rad sa direktorijumima
Kretanje po direktorijumskom stablu
Prikazivanje sadržaja direktorijuma
Kreiranje direktorijuma
Brisanje direktorijuma
Kopiranje direktorijuma
Pretraživanje direktorijuma
Kriterijumi pretrage
Akcioni izrazi
Kvalifikatori pretrage
Složeni kriterijumi pretrage
Rad sa tekstualnim datotekama
Pregledanje sadržaja tekstualne datoteke
cat
more
less
Prikazivanje početka i kraja datoteke (komande head i tail)
Brojanje karaktera, reči i linija
Upoređivanje sadržaja datoteka
Komanda cmp
Komanda diff
Uređivanje sadržaja datoteka
Uređivanje sadržaja datoteka po određenom kriterijumu (sort)
Priprema tekstualnih datoteka za štampu (pr)
Podela tekstualnih datoteka (split)
Uklanjanje duplikata linija iz datoteke (uniq)
Traženje teksta u datoteci
Regularni izrazi (regular expressions)
Jednostavan oblik komande grep
Specijalni karakteri
Zamena jednog karaktera
Ponavljanje karaktera
Ponavljanje regularnih izraza
Upoređivanje početka i kraja linije teksta
Primer složenog regularnog izraza
Komanda grep
Komanda egrep
Komanda fgrep
Editori teksta vi, joe i jed
vi editor
Režimi rada vi editora
Otvaranje datoteka vi editorom
Interaktivne komande u vi editoru
Alternativni editori teksta
Kreiranje malih tekstualnih datoteka komandom cat
joe (Joe's Own Editor)
jed
Midnight Commander
Twin-panel interfejs
Rad u programu Midnight Commander
Shell programiranje
Osnovi shell programiranja
Komentari
Pokretanje shell programa
Pronalaženje komandnog interpretera
Promenljive u Linux operativnom sistemu
Važnije sistemske promenljive
Definisanje korisničkih promenljivih
Prikazivanje i korišćenje vrednosti UDV promenljivih
Komande specifične za shell programiranje
echo
Navodnici
Komanda expr i shell aritmetika
read
sed (stream editor)
awk
grep
wc (word count)
sort
bc (basic calculator)
tput
Komande, argumenti i izlazni status
Zašto se zahtevaju komandni argumenti ?
Shell program i komandni argumenti
Izlazni status komande
Grupisanje komandi
( list )
{ list; }
Parametri komandnog interpretera (Shell Parameters)
Pozicioni parametri (positional parameters)
Specijalni parametri (special parameters)
Redirekcija i pipe mehanizam
Redirekcija ulaza i izlaza
Pipe mehanizam
Shell proširenja (Shell Expansions)
Proširenje preko zagrada (Brace Expansion)
Tilda proširenje (Tilde Expansion)
Parametarsko proširenje (Shell Parameter Expansion)
Komandna zamena (Command Substitution)
Aritmetičko proširenje (Arithmetic Expansion)
Proširenje imena datoteka (Filename Expansion)
Pronalaženje uzorka (Pattern Matching)
Konstrukcije u shell programiranju
Uslovne konstrukcije
Uslovna konstrukcija if
if-then-fi
Provera uslova i test naredba
Provera tačnosti izraza komandom test
if-then-else-fi
if-then-elif-else-fi
Uslovna konstrukcija case
Petlje
while petlja
until petlja
for petlja
Naredba select
Funkcije
Lokalne promenljive
Primeri složenijih shell programa
Backup home direktorijuma
Promena imena grupe datoteka
Mrežno okruženje
Uvod u mreže i TCP/IP
Mrežni uređaji
TCP/IP skup protokola
IP adresiranje
Rutiranje
Broj porta
Razrešavanje imena računara
Mrežni servisi
Konfigurisanje Linux mrežnog okruženja
Konfiguracione datoteke
/etc/hostname
/etc/hosts
/etc/hosts.allow i /etc/hosts.deny
/etc/networks
/etc/network/interfaces
/etc/protocols
/etc/services
/etc/resolve.conf
/etc/nssswitch.conf - konfigurisanje metoda
Programi za TCP/IP administraciju
/sbin/ifdown i /sbin/ifup
ifconfig
netstat
arp
ping
route
traceroute
nslookup
Mrežni servisi i wrapper programi
inetd
xinetd
xinetd i kontrola pristupa
xinetd - vezivanje servisa za IP adresu i redirekcija
xinetd i upravljanje resursima
Linux kao mrežni server
Mrežni sistem datoteka (NFS)
NFS server
Aktiviranje NFS sistema datoteka na klijentima
Statistički izveštaj o korišćenju NFS servera
Centralizovana autentifikacija (NIS)
Komponente NIS sistema
Sistemske datoteke koje ulaze u sastav NIS baze
Apache web server
Instalacija
Potrebne privilegije
Pokretanje i zaustavljanje web servera - apachectl skript
Komunikacija sa httpd procesom
Konfigurisanje Apache web servera
Postavljanje web sajta
Mere zaštite
chroot-jail
Praćenje rada i održavanje servera
Štampači
Proces štampanja
Komponente UNIX okruženja za štampu
Štampač
Red za štampač
Server za štampu
Common UNIX Printing System (CUPSTM)
Korišćenje CUPS sistema za štampu
Štampanje i administracija reda za štampu
Slanje zahteva na štampu
Provera statusa štampača
Brisanje poslova iz reda
Direktno štampanje
Podešavanje karakteristika štampača i dokumenata
Opšte karakteristike
Štampanje naslovne stranice (banner page)
Opšte karakteristike dokumenata
Karakteristike tekstualnih dokumenata
Karakteristike grafičkih dokumenata
Slanje dokumenta na štampu bez filtriranja
Podrazumevana podešavanja štampača
Instance štampača
Administracija CUPS sistema za štampu
Instaliranje CUPS sistema
Upravljanje štampačima
Instalacija prvog štampača
Dodavanje novih i modifikacija instaliranih štampača
Brisanje štampača
Postavljanje primarnog štampača
Pokretanje i zaustavljanje štampača
Prihvatanje i odbijanje poslova štampanja
Podešavanje kvota na štampaču
Kontrola pristupa štampaču
Klase štampača
Upravljanje klasama štampača
Implicitne klase
Konfigurisanje klijenata
Automatsko konfigurisanje klijenata
CUPS konfiguracione datoteke
Štampanje sa ostalih sistema
Podrška za LPD klijente
Štampanje na LPD serverima
CUPS i Windows
Arhiviranje i backup
Strategije kreiranja rezervnih kopija podataka
Arhive
Poređenje arhiva i sistema datoteka
Backup
Prosta šema
Višeslojna kopija
Koje podatke treba uvrstiti u backup ?
Komprimovane kopije podataka
Linux programi za backup i arhiviranje
tar (tape archiver)
Sintaksa i argumenti komande tar
Kreiranje arhive
Listanje sadržaja arhive i ekstrakcija datoteka
Primeri korišćenja tar komande
Arhiviranje i kompresija
compress
gzip (GNU ZIP)
Primer sprege tar arhivera sa gzip i compress programima
cpio (copy in and out)
Režimi rada i sintaksa cpio komande
Opcioni argumenti
Specificiranje formata arhive
Kako se koristi cpio
Korišćenje pipe mehanizma - cpio u sprezi sa komandama ls i find
Primeri korićenja komande cpio
dump i restore
Restauracija čitavog sistema datoteka iz arhive
Administracija procesa
Osnovne tehnike upravljanja procesima
Kreiranje procesa i izvršenje programa
Dobijanje informacija o procesima
Prikazivanje procesa (komanda ps)
Određivanje vremena potrebnog za izvršenje procesa (komanda time)
Slanje signala i uništenje procesa
Signali
Uništenje procesa
Komanda kill
Koji signal treba poslati procesu ?
Odjavljivanje sa sistema i procesi koji se izvršavaju u pozadini
Poslovi i prioriteti
Procesi koji se izvršavaju u pozadini i prioriteti
Procesi koji se izvršavaju u prvom planu (foreground)
Procesi koji se izvršavaju u pozadini (background)
Prioriteti procesa
Nice vrednost i prioriteti procesa
Pokretanje procesa sa sniženim prioritetom
Promena prioriteta procesa komandom renice
Grupe procesa i kontrola poslova
Komanda jobs
Premeštanje poslova u prvi plan (komanda fg)
Suspendovanje procesne grupe
Premeštanje poslova u pozadinu (komanda bg)
Komanda wait i čekanje izvršenja poslova
Primer korišćenja kontrole poslova
Zakazivanje i periodično izvršavanje komandi
Komanda at
Periodično izvršavanje komandi
cron daemon
Podizanje i zaustavljanje sistema
Podizanje sistema (boot)
init
Nivoi izvršenja (runlevels)
Konfiguraciona datoteka /etc/inittab i init-getty relacija
Komanda init
Inicijalizacione rc datoteke
Prijavljivanje na sistem
Prijavljivanje na sistem preko mreže
Funkcija procesa login
Zaustavljanje sistema
Komanda shutdown
Kontrola pristupa rutinama za zaustavljanje sistema
Instalacija softverskih paketa
Standardni formati paketa
Osobine standardnih formata paketa
tarball (tgz, tar.gz)
RPM
deb
Rad sa paket menadžerima
RPM (Red Hat Package Manager)
Instaliranje RPM paketa
Uklanjanje paketa iz sistema
Nadogradnja (upgrade) paketa
deb (The Debian package management system)
apt-get
Aptitude
dpkg
dselect
tasksel
Konfigurisanje jezgra Linux sistema
Rad sa modulima
Programski moduli jezgra
Komande za rad sa modulima
Koji se problemi ne mogu rešiti modulima?
Prevođenje kernela
Terminologija prevođenja
Priprema za izradu novog jezgra
Pronalaženje novih verzija kernela
Snimanje starog kernela
Izrada novog jezgra
Podešavanje novog jezgra
Pokretanje okruženja komandne linije
Pokretanje okruženja sa menijima
Prevođenje i testiranje novog jezgra
Sigurnost i zaštita UNIX i Linux sistema
Pregled zaštite UNIX i Linux sistema
Standardni mehanizmi zaštite
Metode napada
Zaštitne polise
Standardni mehanizmi zaštite pod UNIX/Linux sistemom
Programi za analizu sigurnosti sistema
Opšta sigurnost Linux sistema
Sigurnost na nivou BIOS-a
Prevođenje monolitnog kernela
Privremeno isključivanje servera sa mreže
LILO i datoteka /etc/lilo.conf
Korisničke lozinke
root korisnički nalog
Promenljiva TMOUT
Datoteka /etc/securetty
Sistemski korisnički nalozi
Jednokorisnički režim rada
Zabrana korišćenja Ctrl-Alt-Del
Datoteka /etc/fstab
Uklanjanje nepotrebnog softvera
Automatsko brisanje .bash_history datoteke
Sigurnost skriptova u /etc/init.d direktorijumu
SUID bit
Datoteka /etc/services
Datoteka /etc/exports
Datoteke bez vlasnika
Datoteke .rhosts
PAM (Pluggable Authentication Modules)
GNU Privacy Guard (GnuPG)
Uvod u tehnologiju šifrovanja
Simetrični algoritmi i algoritmi sa javnim ključem
Digitalni potpis
Instaliranje GnuPG paketa
Administracija GnuPG - rad sa ključevima
Kreiranje para ključeva
Izvoz ključeva
Uvoz ključeva
Označavanje ključeva
Provera potpisa
Šifrovanje i dešifrovanje
Linux kao mrežna barijera
Metode zaštite mrežnim barijerama
Filtriranje paketa
Prevođenje mrežnih adresa
Dvonivovska zaštita
iptables
Filtriranje paketa
NAT tabela
Mangle tabela
Put paketa kroz iptables
Administracija iptables mrežne barijere
Pregled značajnijih Linux komandi
GNU opšta javna licenca
GNU Opšta javna licenca
Kako da primenite ove odredbe na vaše nove programe
Laboratorijske vežbe
Literatura
Knjigu možete besplatno repuzeti sa:
http://www.conwex.info/draganp/os-unix-i-linux.pdf