SOS

Z David Seidl
Skočit na navigaci Skočit na vyhledávání

Změny týkající se tohoto předmětu v dalších letech
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.

Co by jsme chtěli změnit:

  • Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.
  • Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.
  • Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.
  • Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.
  • Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.
  • Od počátku bude virtuální stroj obsahovat dvě síťové karty.
  • Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.


Co osvědčilo:

  • Přednášky zůstanou více interaktivní s praktickými ukázkami.
  • Zachová se bodování všech cvičení s mírným přebytkem bodů.
  • Obtížnost úloh ve cvičení se zdá být dostačující.
  • Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.


Předmět Správa operačních systémů

Podmínky absolvování předmětu

Denní studium

  • Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.
  • Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.
  • Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.
  • Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.
  • Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.

Kombinované studium

  • Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.
  • Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.
  • Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.

Co můžete od tohoto předmětu očekávat

Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.

Co od tohoto předmětu očekávat nemůžete

  • Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.
  • Programovat se bude!!! A hodně. - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).

Literatura

Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.

Doporučené weby:

Doporučené knihy:

  • Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1
  • SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.
  • JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 978­80­251­2433­8
  • JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 978­80 251­2084­2

English book

Co budete potřebovat na cvičení

Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili Virtualbox a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.

Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.

Témata jednotlivých přednášek a navazujících cvičení

První přednáška

Historie OS Unix a jeho vývoj[1]; OS Linux vznik a koncepce [2]; Distribude OS Linux [3] [4]; Příkazový řádek; možnosti příkazového řádku, základní příkazy [5]; význam složek v kořenovém adresáři [6]

Cvičení:

  • Práce se software Virtualbox [7].
  1. Doporučuji prostudovat dokumentaci k tomuto programu.
  2. Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.
  • Instalace distribuce Debian do virtualizovaného prostředí [8] [9].
  1. Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal

    https://www.debian.org/distrib/netinst pro systémy s procesorem i386 nebo amd64 dle vašeho procesoru.
  2. Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [10]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.
  3. Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian
  4. Pro instalaci virtuálního PC postačí i minimum paměti
  5. Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB
  6. Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní.
  7. Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)
  8. Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor
  9. Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)
    1. Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění Česká republika a klávesnice dle libosti
    2. Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3
    3. Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.
    4. Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.
    5. Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.
    6. Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.
    7. K průzkumu popularity balíků se připojovat nemusíte.
    8. Vyberte pro instalaci program SSH Server a zrušte výběr všech ostatních nástrojů.
    9. Prosím neinstalujte grafické rozhraní. To na server nepatří.
    10. Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda
    11. Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel
    12. Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: dhclient enp0s8, tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ip address
  • Základní příkazy pro práci v příkazové řádku [11] [12]
  1. Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.
  2. Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.
  3. Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem apt-get install mc.


  • Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: Debian-VirtualBox


Druhá přednáška

Klíčová slova:
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce
cat, cut, grep, sort, tr, echo
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....
if...then...else , test, []

Programování ve skriptovacím jazyku BASH; proměnné, cykly, podmínky [13]; Program sed [14] [15] a regulární výrazy [16] [17] [18]

Cvičení:

  • Práce v příkazovém řádku; operace přesměrování.
  • Interpret příkazů, vícenásobné přesměrování, cykly.
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'

Na stolním PC které je v učebně prosím klikněte na odkaz: [19]
Úkoly:

Zadání 1
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 2
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 3
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 4
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 5
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.

Třetí přednáška

Klíčová slova:

  • Většinu informací jsem čerpal z následujících stránek:

https://www.root.cz/serialy/nebojte-se-systemd/
http://www.abclinuxu.cz/serialy/systemd
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot
Systemd

man systemd.unit

Příklad jednotky typu služba

[Unit]
Description=TLP system startup/shutdown
Wants=bluetooth.service NetworkManager.service
After=multi-user.target bluetooth.service NetworkManager.service
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/bin/tlp init start
ExecStop=/usr/bin/tlp init stop

[Install]
WantedBy=multi-user.target

Závislosti v části [Unit]

  • Requires

Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.

  • Wants

Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v

  • After,Before

Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost, jen určuje pořadí spouštění. Více viz příklad.

  • Conflicts

Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak.

Sekce [Service]

* "-" v parametru znamená že nenulový návratový kod neznamená chybu
* je možné zadat více příkazů oddělených středníkem
* je nutné zadat plnou cestu k příkazu
* není možné používat | > 2> >> &


  • ExecStart

Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *ExecStartPre Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.

  • ExecStartPost

Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.

  • ExecReload

Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)

  • ExecStop

Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.

  • ExecStopPost

Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace.


Typ služeb

  • simple

Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.

  • dbus

Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.

  • oneshot

Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.

  • notify

Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.

  • forking

Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.

  • idle

Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole.

Sekce [Install]

WantedBy=default.target - jednotka bude spuštěna po startu

Příkazy

systemctl 
systemctl help dbus
systemctl is-active dbus
systemctl is-enable dbus 
systemctl is-enabled dbus
systemctl is-failed dbus
systemctl status dbus
systemctl list-dependencies dbus
systemctl list-dependencies --all
systemctl daemon-reload

/usr/lib/systemd/system ;jednotky instalované z repozitářů
/usr/lib/systemd/user ;uživatelské jednotky
/etc/systemd/system
/etc/systemd/user


SystemV

grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d

#!/bin/sh
### BEGIN INIT INFO
# Provides:          apache2
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

. /lib/lsb/init-functions
case $1 in
	start)
       ;;
       stop) 
       ;;
esac

Zavádění OS Linux [20], zavaděč Lilo [21]; Grub [22] [23] a Grub2 [24] [25] [26], využití zaváděcího RAMdisku [27]; inicializace systému, spuštění procesu INIT [28]; spouštění služeb [29] [30] [31]; Cyklické spouštění příkazů s skriptů [32] [33]

Cvičení:

  • Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy

Na stolním PC které je v učebně prosím klikněte na odkaz: [34]
Úkoly:

Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM. Například nah_cislo=`echo $RANDOM`.


Zadání 1
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným 
    číselným jménem xxx.txt kde xxx je náhodné číslo.
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 2
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.
    Kde MAX je celé číslo větší než 1.
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 3
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. 
    S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).
    Pro definici možných přípon použijte pole, případně funkci. 
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 4
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.
    Kde MAX je celé číslo větší než 1.
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 5
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,
    s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).
    Bez použití odřádkování.
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.

Čtvrtá přednáška

Klíčová slova:
apt-get install system-config-lvm mdadm

/dev/sda-z
fdisk -l, cfdisk, mkfs.ext4
/etc/fstab

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1
watch "cat /proc/mdstat"

pvcreate /dev/sdb1
vgcreate test /dev/sdb1
lvcreate -L 50M -n padesat test

vgextend test /dev/sdc1
lvextend -L 150M /dev/test/padesat
resizefs /dev/test/padesat 150M

Filesystémy používané v OS Linux [35]; Základní vlastnosti [36] [37] Tvorba filesystému a práce s oblasti disků mkfs fdisk fdisk cfdisk parted; Správa diskových oddílů v GNU/Debian /etc/fstab; LVM [38]

Cvičení:

  • Tvorba vlastního startovacího skriptu
  • Cyklické spouštění skriptů


Na stolním PC které je v učebně prosím klikněte na odkaz: [39]
Úkoly:

Zadání 1
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů 
    větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů 
    větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup
    přesune tento soubor do adresáře /backup
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude
    ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. 
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat
    informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.
b - Modifikace zadání dle pokynů vyučujícího.

Pátá přednáška

Klíčová slova:
apt-get install openssl quota

adduser, deluser
useradd, userdel

useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta

/etc/passwd
/etc/group
/etc/skell
/etc/shadow

mount -o remount,usrquota,grpquota /home
service quota start
quotacheck /dev/sdb1
quotaon /dev/sdb1
edquota franta

chmod
chown
chgrp

S - Bit
T - Bit


Správa uživatelských účtů, vytvoření a mazání uživatelů [40] [41]; Uživatelská práva [42]; PAM moduly [43] [44], diskové quoty [45]

Cvičení:

  • Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM

Na stolním PC které je v učebně prosím klikněte na odkaz: [46]
Úkoly:

Zadání 1
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.
    Přičemž zachovejte veškerý obsah původního adresáře /home.
    Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.
    Přičemž zachovejte veškerý obsah původního adresáře /home.
    Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.
    Přičemž zachovejte veškerý obsah původního adresáře /home.
    Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.
    Přičemž zachovejte veškerý obsah původního adresáře /home.
    Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.
    Přičemž zachovejte veškerý obsah původního adresáře /home.
    Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.
b - Modifikace zadání dle pokynů vyučujícího.

Šestá přednáška

Klíčová slova:
/etc/network/*

cat /etc/network/interfaces
auto enp0s3
iface enp0s3 inet dhcp

allow-hotplug enp0s3
iface enp0s3 inet static
	address 192.168.0.1
	netmask 255.255.255.0
	broacast 192.168.0.1

ip route add default via 192.168.0.254
ip route del default via 192.168.0.254

route add default gw 192.168.0.1 //přidá defaultní gateway
route del default gw 192.168.0.1 //odebere defaultní gateway

/etc/resolv.conf //konfigurace DNS, základem je řádek nameserver IP_ADRESA
Výborný článek se základy zde [47]
iptabels -t filter, iptabels -t nat, iptabels -t mangle
iptables -P INPUT ACCEPT //defaultní politika
iptables -A INPUT  -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0
iptables -A OUTPUT -o eth0 -j DROP   //zahodí pakety vystupující ze systému přes eth1
iptables -A INPUT -s 192.168.0.100 -j DROP   //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT   //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  //zamaskuje pakety vystupující ze systému přes eth0
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů
iptables-save > /etc/iptables
iptables-restore /etc/iptables

Linux jako aktivní síťový prvek, routing [48], NAT, Firewall [49] [50]

Cvičení:

  • Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [51] )

Na stolním PC které je v učebně prosím klikněte na odkaz: [52]
Úkoly:

Zadání 1
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné  prvotní heslo.
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.
Všem nově vytvořeným uživatelům definujte diskové quoty.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.
Všem nově vytvořeným uživatelům definujte diskové quoty.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné  prvotní heslo.
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.
b - Modifikace zadání dle pokynů vyučujícího.

Sedmá přednáška

Nástroje pro správu procesů [53]; Balíčkovací systémy [54] [55] ; Tvorba vlastního instalačního balíčku

Systém APT
nízká úroveň:

dpkg-deb -f geg_1.0.2-4_i386.deb  <-- info o balíčku

střední úroveň:

dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku
dpkg -r geg                  <-- odinstalace
dpkg -l 'gettext*'           <-- info z bal systému
dpkg -L gftp-text            <-- jaké soubory balík obsahuje
dpkg -S /usb/bin/mc          <-- ve kterém balíčku se vyskytuje

vyšší úroveň

apt-get install 
apt-get remove
apt-get update && apt-get upgrade
apt-get source mc
apt-cache stats
apt-cache show mc
apt-cache search mcedit
apt-cache depends mc

Vytvoření balíčku

tmp
|-- DEBIAN
|   |-- control
|   |-- postinst
|   |-- preinst
|   `-- md5sums
`-- etc
    |--neco.conf
.
.
.
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums
#cat control

Package: nazev_baliku
Version: 0.01
Section: sekce - především oficiální balíky
Priority: optional (důležitost, nechte vždy optional)
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)
Installed-Size: 2717 (velikost složky /usr/ v kB)
Maintainer: vase_jmeno <vase.emailova@adresa.cz>
Description: Krátký popis v AJ
 Dlouhý popis v AJ
  .
   Druhý odstavec dlouhého popisu, obvykle vaše URL
dpkg-deb -b slozka nazev_0.1_i386.deb




Cvičení:

  • Programování sktriptu pro natavení firewallu a rourování

Na stolním PC které je v učebně prosím klikněte na odkaz: [56]
Úkoly:

Zadání 1
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. 
    Vytvořte startovací skript, který inicializuje firewall pomocí iptables.
    Defaultní politika pro INPUT bude DROP.
    Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.
    Port 22 povolte jen z definovaných IP.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. 
    Defaultní politika pro INPUT bude ACCEPT.
    Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.
    Port 22 povolte jen z definovaných IP.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. 
    Defaultní politika pro OUTPUT bude DROP.
    Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.
    Port 22 povolte jen na definované IP adresy.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. 
    Defaultní politika pro OUTPUT bude ACCEPT.
    Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.
    Port 22 povolte jen na definované IP adresy.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. 
    Defaultní politika pro OUTPUT a INPUT bude DROP.
    Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.
    Odchozí provoz povolte pouze na portu 22.
b - Modifikace zadání dle pokynů vyučujícího.

Osmá přednáška

Základní síťové služby; LAMP server [57] [58], DHCP server [59] , NFS [60] [61] a jiné; Nástroje pro kontrolu spuštěných síťových služeb netstat tcpdump nmap iftop [62]

Přidání uživatele do databáze MariaDB

# mysql -u root -p
MariaDB [(none)]> use mysql
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';
MariaDB [mysql]> \q
# mysql -u root
MariaDB [(none)]> CREATE DATABASE wiki;
MariaDB [(none)]> use wiki
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;
Query OK, 0 rows affected (0.01 sec)
MariaDB [wiki]>\q

Přidání databáze MySQL do Debianu

* Stáhnout následující balíček:
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
* Doinstalovat lsb_release
apt install lsb-release
* nainstalovat balíček
dpkg -i mysql-apt-config_0.8.12-1_all.deb
* Aktualizovat balíky z internetu
apt update
* Nainstalovat MySQL
apt install mysql-server
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf
 [mysqld]
 default_authentication_plugin=mysql_native_password 


Cvičení:

  • Vytvoření firewalu zaváděného ze startovacího skriptu

Na školním PC které je v učebně prosím klikněte na odkaz: [63]
Úkoly:

Zadání 1
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.
    Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci
    skriptu do systému.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.
    U každého uživatele poté skript vypíše počet spuštěných programů.
    Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ps. 
    Tento balíček použijte k instalaci skriptu do systému.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a
    zatížení systému zjištěné ze souboru /proc/loadavg.
    Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci
    skriptu do systému.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí 
    programu tar.
    Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci
    skriptu do systému.
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ./skript parametr1 parametr2
    Prvním parametrem můžou být následující slova: http, https, ssh, telnet. 
    Druhým parametrem může být accept nebo deny. 
    Skript při zadání ./skript http deny zakáže pomocí iptables přístup na PC protokolem http.
    Ostatní parametry se zachovají obdobně.
    Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci
    skriptu do systému.
b - Modifikace zadání dle pokynů vyučujícího.



Devátá přednáška

Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/

Cvičení:

  • Instalace a konfigurace LAMP serveru
  • Instalace DHCP serveru
  • Instalace NFS serveru

Na školním PC které je v učebně prosím klikněte na odkaz: [64]

Zadání 1
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8
    Na serveru nainstalujte webový server Apache a nastavte provoz na http s https
    Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC        
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8
    Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP
    Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8
    Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir
    Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8
    Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP
    Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC
b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8
    Na serveru nainstalujte webový server Apache a nastavte provoz na http s https
    Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC
b - Modifikace zadání dle pokynů vyučujícího.

Desátá přednáška

Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy

Cvičení:

  • Závěrečný test


Zadání finálního testu verze A (6.5.2019)

1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte OS Linux/Debian 9 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).
3body

2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.
3body

3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli vytvořte jeden oddíl a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systémy. Využijte standardní systémovou konfiguraci. 
10bodů

4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.
12bodů

5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil.
5bodů

6) Nainstalujte webový server Apache2 s podporou PHP a SSL.
3body

7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki
8bodů

8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace.
8bodů

9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP.

  • Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.
  • Povolte přístup na http a https z libovolné IP adresy.
  • Povolte provoz ICMP na všech rozhraních.
  • Nastavte překlad zdrojových síťových adres na rozhraní enp0s3.

Funkčnost firewallu demonstrujte.

  • Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.

12bodů


Zadání finálního testu verze B (6.5.2019)

1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte OS Linux/Debian 9 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).
3body

2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.
3bodů

3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID vytvořte jeden oddíl a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.
10bodů

4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.
12bodů

5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil.
5bodů

6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir.
3body

7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.

  • Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.
  • Povolte přístup na http a https ze všech rozhraní a IP adres.
  • Povolte provoz ICMP na všech rozhraních.
  • Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). 

Funkčnost firewallu demonstrujte.

  • Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.

12bodů

8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.
8bodů


9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.
5bodů

COVID 19 (2020)

Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.

Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.


Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz .

Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.


Zadání vzorové verze finálního testu (30.4.2020 8-11hod)

1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno
3body

2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli vytvořte jeden oddíl a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. 
10bodů

3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.
12bodů

4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil.
5bodů

5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.
3body

6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki
8bodů

7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP.

  • Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.
  • Povolte přístup na http a https z libovolné IP adresy.
  • Povolte provoz ICMP na všech rozhraních.

Funkčnost firewallu demonstrujte.

  • Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)

12bodů

8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.
8bodů

Zadání finálního testu (xx.5.2020)

Zadání bude zveřejněno v době konání testu.

Změna jazyka v konzole

V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:

dpkg-reconfigure locales       # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.
dpkg-reconfigure console-setup # vybrat UTF8, Latin2, font a jeho velikost
dpkg-reconfigure console-data  # vybrat klavesnici

Pokud nemáte k dispozici console-data tak je nainstalujete pomocí  apt-get install console-data

O humor není u tučňáka nouze

Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.
Pokud vám bude nějaký program chybět, tak ho nainstalujte apt-get install chybejici-program , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).

Mašinka

 # sl

Zakřičte si v příkazovém řádku

 # figlet Linux

Zakřičte si barevně příkazovém řádku

 # toilet -f mono12 -F metal Linux

Kráva říká

 # cowsay Linux
 
 # for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done

Moudra

 # fortune
 
 # fortune | cowsay

Popovídejte si

 # aptitude moo
 # aptitude -v moo
 # aptitude -vv moo
 # aptitude -vvv moo
 # ...
 # ...

Koukněte na konec helpu

 # aptitude -h
 # apt-get  -h

Pozadu

 # echo Ahoj | rev

Matrix

 # cmatrix

Obrázky

 # jp2a *.jpg

A co film

 # vlc -V aa film.*

Kočička

 # oneko

Hoří...

 # apt-get install libaa-bin
 # aafire