Vzdělání
Advertisement

36VPS, přednáší ing. Šimánek

Odkazy[]

Stránky na serveru os
Slajdy z přednášek
Materiály ze cvičení

Proč tato stránka vznikla[]

  • Aby poskytla výtah z výukových materiálů, odpovědi na minulé zkouškové otázky a pomohla tak při přípravě na zkoušku.

Kontrolní otázky ze cvičení[]

Týden 1.[]

K čemu slouží soubor /etc/passwd ?

  • Je v něm uloženo UID každého uživatele [ANO]
  • Jsou tam uložena hesla pro přístup přes WWW a FTP [NE]
  • Je to program ke změně hesel uživatelů [NE, tohle je soubor v adresari /etc nikoliv program passwd]
  • Je v něm uloženo GID primární skupiny každého uživatele [ANO]
  • Jsou v něm uloženy některé atributy uživatelů (název domovského adresáře) [ANO]
  • Jsou v něm uložena hesla uživatelů [NE, kdysi v něm bývalo hash hesla, dnes je z bezpečnostních důvodu v /etc/shadow]
  • Je v něm uložen seznam uživatelů [ANO]

Který uživatel má v operačních systémech UNIX administrátorská práva? (Jak takového uživatele poznáte?)

  • Právě ten, který má GID nulové [NE, GID s tim vůbec nesouvisí]
  • Právě ten, který má UID nulové [ANO]
  • Právě ten, kterému to dovolil prezident republiky, popř. generální ředitel dané organizace [NE]
  • Právě ten, který má buď UID nulové nebo GID nulové [NE, musí mít UID 0 na GID nezáleží]
  • Právě ten, který patří do skupiny "root" s GID=0 [NE]
  • Právě ten, jehož uživatelské jméno (login name) je "root" [NE, hlavní je UID]
  • Právě ten, který má UID nenulové [NE]

Týden 2.[]

K čemu je užitečný runlevel S (singleuser mode)?

  • Používají ho běžní uživatelé k zamezení přístupu ze sítě (pokud chce uživatel pracovat jen sám). Lze použít jen z konzole.
  • Je automaticky aktivován při výpadku napájení.
  • Je obdobou volby "jen systém MSDOS" a znamená, že počítač pracuje naprosto stejně, ale bez grafického prostředí.
  • Používá­ ho administátor k odstanění zvlášť závažnách chyb systému. [Spravne]


Jakým příkazem lze zastavit WWW server?

  • killall -HUP httpd
  • /etc/rc.d/init.d/www kill
  • killall www
  • killall httpd
  • /etc/init.d/httpd stop
  • service www stop
  • kill /etc/init.d/httpd
  • service httpd stop [Spravne]
  • /etc/rc.d/init.d/www stop


Jaké PID má démon init

  • vždy 0
  • menší než 0
  • 42
  • 1 [Spravne]
  • vetsi nez !

Mohou v jednom okamžiku běžet současně dva procesy init (/sbin/init)?

  • Ano [ANO, napriklad pri zmene runlevelu bezi jeden init s PID 1 a nove spusteni s pridelenym PID do doby nez prevezme vladu nad systemem]
  • Ne
  • Ano, ale jen když byl každý z těchto procesů spuštěn v jiném adresáři
  • Ano, ale jen když každy z těchto procesů pustil jiný uživatel

Kterým příkazem lze změnit runlevel?

  • setrunlevel
  • runlevel
  • init [Spravne]
  • who -r
  • telinit [Spravne]

Jak vzika proces init (demon)

  • pri startu systemu ho vytvori jadro [Spravne]
  • je prvnim procesem systemu, vytvori sam sebe
  • je spusten ze shellu
  • jako kazdy jiny proces, volanim systemove funkce fork()
  • je spusten pri startu systemu z nektereho rc-scriptu v /etc/rc.d
  • je spusten pri prihlaseni uzivatele

Týden 3.[]

Co je to /dev/md1 ?

  • Takový soubor neexistuje.
  • Speciální soubor reprezentující logický disk, který je vytvořen pomocí volume manageru. [ANO]
  • Speciální soubor, reprezentující fyzický disk, konkrétně první partition.

Kolik primary partition lze vytvořit na jediném disku na platformě PC/x86?

  • libovolný počet, ale jen pokud existuje extended partition
  • 255
  • žádnou, promary partitions nelze použít na počítači PC.
  • 4 [ANO]
  • 2
  • 1
  • 42

Jakým programem se obvykle mění tabulka rozdělení disku?

  • dd
  • fdisk [ANO]
  • partitionedit
  • newfs
  • mount

Týden 4.[]

Jakým příkazem odpojíme kořenový systém souborů

  • kill /
  • Kořenový systém souborů nelze za běhu OS odpojit [ANO]
  • rmdir /
  • detach /
  • umount /

Jakého typu je soubor /dev/null?

  • neexistující soubor
  • symbolický link, který ukazuje na "nic"
  • socket
  • znakové zařízení [ANO]
  • nepojmenovaná roura
  • pojmenovaná roura

Který konfigurační soubor obsahuje seznam systémů souborů, které se mají připojit při startu systému?

  • /etc/mtab
  • /bin/mount
  • /etc/fstab [ANO]
  • /proc/mounts
  • /etc/fsmount

Kterým programem lze provést kontrolu systému souborů typu ext2?

  • fsck [ANO]
  • dump
  • checkfs
  • repairfs
  • mke2fs

Týden 5.[]

Které z těchto balíčků jsou nutné pro spuštění nainstalovaného editoru jstar ?

  • stdlib
  • ncurses
  • XFree86-libs
  • glibc
  • libc

Postup:

whereis jstar
rpm -qf /usr/bin/jstar
for i in `rpm -q --requires joe`; do echo $i; rpm -q --whatprovides $i; done

Jakému balíčku patří soubor /usr/lib/X11/locale/iso8859-2/Compose

  • XFree86-Mesa-libGL
  • xorg-x11-libs
  • xorg-font-iso8859-2
  • xorg-font-utils
  • XFree86-ISO8859-2-100dpi-fonts

Postup:

rpm -qf /usr/lib/X11/locale/iso8859-2/Compose

Jaké capabilities nabízí balíček glib ?

  • libresolv-2.3.2.so
  • libglib-1.2.so.0
  • libgmodule-1.2.so.0
  • glibc-2.3.2.so

Postup:

rpm -q --provides glib

Jaká informace je uvedena v položce Vendor v informacích o balíčku ntp?

  • David L. Mills
  • none
  • Red Hat, Corp.
  • Red Hat
  • Red Hat, Inc.

Postup:

rpm -qi ntp

Týden 6.[]

Lze využít program tar pro vytvoření komprimované zálohy domovských adresářů?

  • Ne
  • Ne, zálohu domovských adresářů nelze komprimovat.
  • Ano, ale jen spolu s komprimačním programem gzip
  • Ano, ale jen spolu s nějakým (libovolným) komprimačním programem [ANO, např. gzip,bzip2, ...]

Jaké soubory obvykle označují následující přípony?

Poznámky: Příponu .Z používá utilitka compress, zálohování probíhá tak, že nejprve se soubory zabalí do taru (zachovají se cestu, práva, čas, atd.) a výsledný tar se zabalí komprimačním programem. Většina unixových komprimátoru předpokládá, že komprimují pouze jeden soubor (náš *.tar).

  • .Z - soubor komprimovaný programem gzip
  • .Z - soubor komprimovaný programem bzip
  • .tgz - soubory komprimované programem gzip a následně archivované programem tar
  • .tar.Z - soubory komprimované programem compress a následně archivované programem tar
  • .tar - archiv vytvořený programem tar [ANO]
  • .tgz - archiv vytvořený programem tar a následně komprimovaný programem gzip [ANO]
  • .Z - soubor komprimovaný programem zip
  • .Z - soubor komprimovaný programem compress [ANO]
  • .tar.gz - soubory komprimované programem gzip a následně archivované programem tar
  • .tar.Z - archiv vytvořený programem tar a následně komprimovaný programem gzip
  • .Z - soubor komprimovaný programem zip
  • .tar.gz - archiv vytvořený programem tar a následně komprimovaný programem gzip [ANO]
  • .tgz - nekomprimovaný archiv vytvořený programem tgz

Mezi hlavní výhody zálohovacího programu dump (oproti tar, nebo cpio) patří zejména:

  • Rychlejší zálohování. [ANO]
  • Zachování času posledního přístupu k souboru během zálohování. [ANO]
  • Podpora inkrementálního zálohování. [ANO] [GNU tar už inkrementální zálohy taky podporuje tak že se jedná o trošku zavádějící otázku]
viz: http://www.gnu.org/software/tar/manual/html_node/Incremental-Dumps.html
  • K zálohování nejsou třeba root práva.

Mezi hlavní výhody zálohovacího programu tar (oproti dump) patří zejména:

  • Automatická komprese dat.
  • Zachování času posledního přístupu k souboru během zálohování.
  • Možnost interaktivní obnovy. [NE?] [Viz výše zavádějící]
  • Rychlejší zálohování.

Tady jsem nic nezatrhnul, protože pokud to mají oba není to výhoda a z nabízených možností nemá tar nic lepšího než dump.

Týden 7.[]

Jak lze jádru Linuxu předat informace o tom, kde má hledat kořenový systém souborů ?

  • Parametrem jádra mount=
  • Parametrem jádra /=
  • Parametrem jádra root= [ANO]
  • Nastavením implicitní hodnoty přímo v jádře ještě před bootem programem rdev [ANO]
  • Parametrem jádra mount /

Kde lze v systému Linux nalézt informace o všech PCI zařízeních v počítači?

  • V souboru /proc/pci [ANO]
  • Podle existence speciálních zařízení v /dev: Přítomnost např. hardware ABC zjistíme podle existence souboru /dev/ABC
  • V různých souborech v adresáři /dev
  • V souboru /etc/pci

Které volby (konfigurační přepínače) je třeba nastavit při konfiguraci jádra, chceme-li číst (tj. namountovat) běžné CD-ROM disky na SCSI CD-ROM mechanice.

  • CONFIG_ROMFS_FS (ROM file system support)
  • CONFIG_BLK_DEV_SR (SCSI CDROM support) [ANO]
  • CONFIG_CD_NO_IDESCSI (Support non-SCSI/IDE/ATAPI CDROM drives)
  • CONFIG_CHR_DEV_SG (SCSI generic support) [NE]
  • CONFIG_EXT3_FS (Ext3 journalling file system support)
  • CONFIG_ISO9660_FS (ISO 9660 file system support) [ANO]

Týden 8.[]

Jak zakážete použití dodatečných nastavení pro specifický adresář (tj. nastavení běžně definovaná v souborech .htaccess) ?

  • Uvedením direktivy AccessFileName .cokoliv, což způsobí přenastavení jména přístupového souboru na jméno začínající tečkou, které je skryté
  • Uvedením direktivy NoAccessFile
  • Uvedením direktivy AllowOverride None [ANO]
  • Uvedením direktivy UserAccessFile None

V čem se liší virtuální server na bázi jmen od virtuálního serveru na bázi IP adres?

  • Virtuální servery na bázi IP adres vyžadují minimálně tolik různých IP adres, kolik je virtuálních serverů, zatímco servery na bázi jmen tolik adres nevyžadují. [ANO]
  • Virtuální servery na bázi IP adres fungují i bez platného DNS záznamu, zatímco virtuální servery na bázi jmen jsou bez DNS záznamu (případně jiné ekvivalentní služby - NIS, NIS+, LDAP) nedostupné. [ANO]
  • Virtuální servery na bázi jmen fungují dobře i s nižšími verzemi protokolu HTTP (ver 1.0 a starší)
  • Virtuální servery na bázi jmen musí používat dohromady jen jedinou IP adresu, zatímco servery na bázi IP adres mohou (a mají) adresy navzájem různé.
  • Virtuální servery na bázi IP adres musí běžet každý na jiném počítači, neboť používají jiné (různé) IP adresy.

Mějme následující CGI script:

#!/bin/bash
echo "Content-type: text/plain"

grep root /etc/passwd /etc/blbost

Označte všechny příkazy, které je nutné vložit do tohoto scriptu mezi příkazy echo a grep, aby script zobrazoval v prohlížeči stejné informace, jako to dělá stejný příkaz grep na příkazové řádce.

  • umount /usr
  • echo "MIME-type: text/plain"
  • exec 2>&1 [ANO]
  • export TERM=vt100
  • exit 0
echo "<HTML>"
echo " <HEAD>"
echo "  <TITLE></TITLE>"
echo " </HEAD>"
echo " <BODY>"

Navíc by se mělo tělo HTML dokumentu uzavřít i po skončení příkazu grep.

  • g) export DISPLAY=:0.0
  • h) echo "Document-encoding: ascii"
  • i) echo "" [ANO]

Týden 9.[]

Srovnejte spojení pomocí ssh proti spojení pomocí telnet/rsh/rlogin, za předpokladu že nebudu používat (myšleno: předem nevyměním ani nijak neověřím) ani veřejné klíče počítačů, ani veřejné klíče uživatelů. V čem jsou rozdíly?

  • Spojení je skoro celé šifrované, ale pokud by útočník odposlechl všechny přenesené pakety (zejména počáteční dohadování klíčů), pak by mohl spojení rozluštit.
  • rsh/rlogin umožňuje nastavit přihlašování bez hesla (a autentizovat pomoci souboru .rhosts) narozdíl od ssh, které bez veřejných klíčů takto (autentizaci na zaklade pouhych neoverenych IP adres) nastavit nejde.
  • Při spojení ssh lze (i bez použití veřejných klíčů) vytvořit další zabezpečený (šifrovaný) TCP kanál (ssh tunel), který se dá využít pro jiné aplikace. [ANO]
  • Spojení ssh je po celou dobu šifrované, nelze ho tedy v odposlechnout pouhým odposlechem paketů. [ANO]

Proč je výhodnější použít ssh místo rsh, nechceme-li používat autentizaci uživatele pomocí hesla?

  • Při SSH přístupu nemusí server důvěřovat IP adrese ani klíči počítače ze kterého se hlásí, ale může ověřit uživatele podle veřejného klíče uživatele. [ANO]
  • Při SSH má Klient jistotu, že komunikuje se správným serverem (pokud má k dispozici správný klíč). [ANO]
  • Protokol SSH může automaticky zprostředkovat spojení s X-serverem. [ANO]
  • Celé SSH spojení je šifrované, tj. ani odposlech všech paketů (včetně inicializačních) nepostačí k rozluštění přenášené informace. [ANO]

Jak zabezpečíte protokol pop3 (čtení vzdálené pošty) pomocí ssh tunelu proti odposlechu? Řekněme, že POP3 server se jmenuje sss, lokální počítač se jmenuje ccc a uživatel má přístup na server sss pod USERNAME=uuu. Po vytvoření tunelu bude client používat adresu localhost a port 8888.

  • ssh -l uuu -L 110:sss:8888 sss
  • ssh -l uuu -L 8888:sss:110 ccc
  • ssh -l uuu -L 110:sss:8888 ccc
  • ssh -l uuu -L 8888:ccc:110 ccc
  • ssh -l uuu -R 8888:sss:110 ccc
  • ssh -l uuu -R 8888:sss:110 sss
  • ssh -l uuu -L 8888:sss:110 sss [ANO]
  • ssh -l uuu -R 110:ccc:8888 sss
  • ssh -l uuu -R 110:sss:8888 sss
  • ssh -l uuu -R 8888:ccc:110 ccc
  • ssh -l uuu -R 110:ccc:8888 ccc
  • ssh -l uuu -L 8888:ccc:110 sss
  • ssh -l uuu -L 110:ccc:8888 sss
  • ssh -l uuu -R 110:sss:8888 ccc
  • ssh -l uuu -L 110:ccc:8888 ccc
  • ssh -l uuu -R 8888:ccc:110 sss

Týden 10.[]

Co je nutné ke zřízení domény 2. řádu (xxxxxx.cz) na vlastním DNS serveru? (tak, aby byla viditelná ze světa)

  • Nakonfigurovat alespoň adresu www.domena.cz
  • Vytvořít jeden primární DNS server, sekundární nejsou potřeba.
  • Registrovat doménu u Internetové autority NIC-CZ, nebo zprostředkovaně přes jiný subjekt. [ANO]
  • DNS server(y) musí být připojeny stálým spojem (24 hodin denně, nikoliv např. dial-up s dynamickou IP). [ANO]
  • Vytvořit minimálně dva nezávislé primární (master) DNS servery.

Kdo je vlastníkem domény kytara.cz ?

  • Webhosting s.r.o.
  • Libor Smékal [ANO]
  • Milan Šimánek
  • Fidel Castro
  • Jan Nedvěd


whois kytara.cz

Který soubor musíte změnit, aby na vašem počítači bylo jméno pokus.felk.cvut.cz překládáno na adresu 192.168.1.1 ?

  • /etc/hosts [ANO]
  • /var/named/felk.zone
  • /bin/ls
  • /etc/named.conf


Týden 11.[]

Jakým příkazem je možné vypsat aktuální nastavení směrovacích tabulek jádra linux routeru?

  • ifconfig
  • ip route [ANO]
  • netstat -r [ANO]
  • route [ANO]

Které adresy patří do intervalu privátních adres (tedy v Internetu se nesměrují)?

  • 10.10.10.10 [ANO]
  • 10.11.12.13 [ANO]
  • 1.1.1.1
  • 168.192.22.11
  • 172.17.2.172 [ANO]
Name IP address range number of IPs classful description largest CIDR block defined in
8-bit block 10.0.0.0 – 10.255.255.255 16,777,216 single class A 10.0.0.0/8 RFC 1597 (obsolete), RFC 1918
12-bit block 172.16.0.0 – 172.31.255.255 1,048,576 16 contiguous class Bs 172.16.0.0/12
16-bit block 192.168.0.0 – 192.168.255.255 65,536 256 contiguous class Cs 192.168.0.0/16
16-bit block 169.254.0.0 – 169.254.255.255 65,536 single class B 169.254.0.0/16 RFC 3330, RFC 3927


Mějme virtuální počítač FC4 v K310 s běžnou konfigurací sítě a správnou maskou, ale bez směrovací položky default. Tedy počítač s takto nakonfigurovanou sítí:

# ifconfig lo 127.0.0.1
# ifconfig eth0 10.0.6.1 netmask 255.255.255.0
# route del default 

Který z následujících příkazů umožní spojení s počítačem sunray2.felk.cvut.cz ?

  • route add -net 147.32.80.0 netmask 255.255.255.0 gw 147.32.80.37
  • route add default gw 10.0.6.128 [ANO]
  • ifconfig eth0 147.32.80.37
  • route add -net 147.32.80.0 netmask 255.255.255.0 gw 10.0.6.128 [ANO]
  • route add default gw 147.32.80.37
  • route add -host 10.0.6.128 gw 147.32.80.37
  • route add -host 147.32.80.37 gw 10.0.6.128 [ANO]
  • route add -net 147.32.80.36 netmask 255.255.255.252 gw 10.0.6.128 [ANO]
  • route add -net 147.32.80.32 netmask 255.255.255.240 gw 10.0.6.128 [ANO]

Týden 12.[]

K čemu slouží protokol ARP?

  • K nastavení směrovacích tabulek při propojení dvou (nebo více) sítí.
  • K přenosu dat po sériové lince (je to low-level transportní protokol).
  • Patří do kategorie směrovacích protokolů (jako je RIP, OSPF, BGP, ...)
  • Protokol pro vzdálenou správu pracovních stanic.
  • Ke zjištění platformově závislé adresy stanice, které je směrován právě odesílaný IP paket. [ANO]

Který program lze využít k aktivaci protokolu CSLIP na sériové lince? (tj. k přepnutí line discipline)

  • pppconfig
  • ifconfig
  • pppd [ANO]
  • arp
  • minicom

Který konfigurační soubor je třeba upravit, aby se spouštěl proces getty obsluhující sériovou linku (tj. abychom mohli na sériovou linku připojit klasický znakový terminál, ze kterého je možné se přihlásit do systému)?

  • /etc/ttyS0
  • /etc/terminal
  • /etc/inittab [ANO]
  • /etc/termcap
  • /etc/services
  • /dev/modem
  • /etc/minicom.users
  • /etc/inetd.conf
  • $HOME/.dialdir

Používá se ARP v případě spojení sériovou linkou? (tj. proudí ARP pakety skrz sériovou linku?)

  • Ano, protokol ARP po sériové lince běží jen při provozu Proxy-ARP.
  • Ano, ARP umožňuje získat IP adresu protější stanice, pokud známe jen její HW adresu.
  • Ne, po sériové lince protokol ARP neběží, ani při použití Proxy-ARP. Jde o point to point spojení. [ANO]
  • Ano, ARP umožňuje získat HW adresu protější stanice, pokud známe jen její IP adresu.

Hromadná písemka 2006/2007[]

1. Co je obsahem adresáře /etc/init.d? [1]
    Kdy se tento adresář používá [2]

2. Co je to i-node? [3]
    Jakým datovým typem je implementován (integer, reál, char, struct...)? [1]

3. Je dán disk se systémem UFS. Na disku je v kořenovém adresáři soubor FILE o velikosti 1 MB a znakové zařízení ABC s major číslem 5 a minor 1. Dále je tam symbolický link SFILE na soubor FILE a hardlink na HABC na zařízení ABC.
    Načrtněte vnitřní dátové struktury UFS. [8]

4. Zhodnoťte principiální rozdíl v zálohování programem tar a ufsdump. [2]
    Jmenujte dvě výhody tar [2]
    Jmenujte dvě výhody dump [2]

5. Co je to kernel modul? [2]
    Čím se liší od knihovny? [2]
    Mohla by být stejná věc implementována knihovnou? Proč? [2]

6. Jakou výhodu/kvalitu přináší portmapper (rpc.bind) [2]
    Která konkrétní služba portmapper využívá? [1]

7. Co je to proc systém souborů? [2]
    K čemu slouží? [1]

8. Uživatele jejichž jméno začíná znakem "a" lze vypsat např. takto:

   grep ^a /etc/passwd  
   grep ^a < /etc/passwd  
 

    V obou případech uveďte jaká systémová volání provede shell, aby docílil spuštění příkazu grap a zvýrazněte rozdíly. [6]
    Kolik parametrů získá příkaz grep? [1]

Zkouškové otázky[]

2006/2007[]

Popište systémová volání kill, write, exec, dup, signal[]

  • kill - int kill(pid_t pid, int sig) pošle procesu, nebo skupině signál, pokud signál není uveden pošle signál 15 (TERM)
  • write - zápis bloku do souboru
  • dup - duplikuje file descriptor a přiřadí mu nejnižší volné číslo
  • exec - ...
  • signal - void (*signal (int sig, void (*disp)(int)))(int) přiřadí signálu sig handler disp

(stačilo, parametry a návratové hodnoty nepožadoval)

Tunelovani portu pres SSH - k cemu to je, jak to funguje[]

Kolik je potřeba DNS serverů (nestačí jen server primární?), k cemu ktery je, jak si DNS nastavit, kdyz mam domenu od napr. americkeho registratora (jestli na DNS na Karlaku ci nejakou americkou).[]

Co se stane s potomkem procesu, skončí-li jeho rodič? Co je "orphan proces" a co "zombie proces"?[]

Je přeřazen pod proces init.

Proces zombie je proces, který byl ukončen, ale nebyl doposud "uklizen". Odklizení provádí nadřízený proces. Program vytvoří nový proces, provade nějaké výpočty a pak na něj zavolá funkci wait(). Když však podřízený proces skončí dříve, než nadřízený proces zavolá funkci wait(), stane se z něj proces zombie. Až nadřízený proces zavolá funkci wait(), získá návratový kód podřízeného procesu, tento proces se zruší a funkce wait() se okamžitě vrátí. Z toho plyne, že je nezbytné zajistit, aby každý proces měl stále určeného rodiče (pokud by totiž rodič skončil dříve než potomek, nikdo by jeho návratový kód nepřebral a proces bu navždy zůstal nečinný v paměti).

Pokud při ukončování procesu zjistíme že má potomky, ustanovíme jejich rodičem proces Init (aby je měl kdo odstranit z paměti) a nazýváme je sirotčí (orphan processes).

Co je to SUID bit? K čemu se používá? Jmenujte alespoň 2 příklady kdy je nenahraditelný.[]

Set UID bit je vlastnost souboru uložená v i-node. Pokud je nastaven, program po spuštění získá práva vlastníka souboru (tedy například roota). Příklady nenahraditelnosti: /bin/su, /bin/passwd, /bin/ping (posilani ICMP paketu)

Sticky bit[]

Je vlastnost i-nodu. Nastavení u adresáře znamená, že soubory uvnitř mohou být přejmenovány nebo odstraněny pouze svými vlastníky nebo rootem (SB má dokonce větší prioritu než nastavení práv adresáře). Toto můžete například využít, jestliže chcete mít nějaký společný adresář, kde mohou uživatelé společně sdílet nějaká data. SB se nastavuje pomocí chmod +t.

U souborů a symlinků má jiný význam viz http://www.faqs.org/faqs/hp/hpux-faq/section-70.html

Použití např. /tmp, /var/tmp

Rozdíl a výhody tar a dump/restore[]

dump/restore tar cpio
inkrementální záloha ano, 9 úrovní ne ne (pomocí find?)
vyžaduje roota ano ne ne
zachovává čas posledního přístupu ano ne ne
rychlejší ano ne ne
relativní záloha záloha absolutní, obnova relativní nastavitelné nastavitelné
libovolný FS ne, UFS ano ano
interaktivní :-) obnova ano ne ne
zadání souborů ? parametrem ze std vstupu

2005/2006[]

Co je to CORE, k čemu se používá, jak zabráníme jeho vytvoření?[]

obsahuje stav procesu v době jeho pádu, je to dobré k ladění chyb. Jeho vytvoření zabráníme např. nastavením resource limitu na 0, nebo vytvořením adresáře core

Kde je uloženo jméno souboru ? (možnosti i-node, datový blok, superblok)[]

V datovém bloku adresáře.

V jakém formátu je uložen v jádře čas?[]

Longint sekundy od 1.1.1970 00:00:00 GMT

Jaký je rozdíl mezi knihovní funkcí a funkcí jádra? Uveďte od každé 3 příklady.[]

funkce jádra běží v privilegovaném modu. funkce jádra: open, read, write knihovní funkce: fopen, fread, fwrite,...

Kde je uloženo NICE číslo procesu ? (možnosti v paměťové časti procesu, ve sdílené paměti jádra) Proč tomu tak musí být?[]

Je uloženo v paměti jádra v tabulce procesů. NICE je statická priorita procesu. Musí to tak být protože proces může zapisovat kdekoliv do své paměti a mohl by si tak libovolně měnit prioritu.

Může na jeden soubor ukazovat více filedescriptorů?[]

Ano může.

Jaký formát mají filedescriptory ? (možnosti struct, integer, pointer)[]

Integer

Může nějaký proces číst/zapisovat z/do souboru, aniž by ho předtím otevřel? Proč?[]

Ano, může pokud zdědí filedescriptor od předka

Kolik i-nodů a kolik datových bloků obsahuje : soubor, adresář, symbolický link, blokové zařízení ? Vždy uveďte min a max počet.[]

			i-node		dat. bloky
			min	max	min	max
	soubor		1	1	0	x
	adresář		1	1	1	x
	symb. link	1	1	1	1, teoreticky i více
	blokové zař.	1	1	0	0
	symb. link	1	1	0 nekdy se zapise primo do i-nodu viz pozn. 1

pozn. 1: (Ext2FS) je to rychlejsi a nezabira to datovy blok navic :-) viz http://gama.fsv.cvut.cz/~soukup/vyuka/k153pg10/rok2002/semestr/vysledky/ilona_netolicka/index.htm

Co jsou to privilegované instrukce ? Jmenujte alespoň 3 privilegované a 3 neprivilegované instrukce.[]

Jsou to instrukce které se mohou vykovávat pouze v privilegovaném módu procesoru. Privilegované: halt, in, out Neprivilegované: mov, add, sub, div, shl, jmp


Příkazy: a) cat /etc/passwd a b) cat < /etc/passwd - jak je provede shell?[]

a) shell

    |
    + fork()|
    |           exec("/bin/cat", "/etc/passwd")  
    |
   wait()

b) shell

    |
   + fork()|
    |           
    |           A = open("/etc/passwd",...); 
    |           dup2(A,0); #deskriptor 0 (standardní vstup) se pred prepsanim zavre
    |           exec("/bin/cat");
   wait()

Když zadá místo /etc/passwd /etc/passwdx, jaká bude chybová hláška. takže u a) něco jako cat: cannot open file, b) shell: cannot open file

Co je to ULIMIT[]

nastavuje omezení na: počet potomků, velikost core, počet file descriptorů prikaz pro nastaveni enviroment pro procesy

Možnosti meziprocesorové komunikace.[]

Sdílená pamět, fronta zpráv, semafor, zprávy, pipe, signály, síťové sockety

Lze zakomponovat funkci sinus do jádra?[]

Lze

Lze vyjmout funkci getuid z jádra a jedná se o privilegovanou funkci?[]

Nejedná, ale potřebuje přistupovat k některým datům, které jsou uvnitř jádra, takže vyjmout ji nelze

Jaké jsou standartní reakce na signály[]

ukončení, ukončení s core, ignorování, zastavení, pokračování ale lze si předdefinovat vlastní handlery pomocí signal

Které signály nelze předefinovat?[]

KILL, STOP

Může zabírat symbolický link více než jeden datový blok?[]

Teoreticky může, ale stačí mu jeden.

Dva procesy (každý na jiném terminálu). Jak můžou komunikovat přes pipe?[]

A: mkfifo("jmeno") … chtěl vedet, ze alokuje i-node ve filesystemu

A: fd1 = open("jmeno", "r") … chtěl vědět ze fd1 je int

B: fd2 = open("jmeno", "w")

A: write( fd1, co, kolik) … musí tam být kolik

B: read( fd2, co, kolik)

Když spustím B dříve => error. Takže se to řeší tak ze A musí B poslat signál.


Ja si myslim, ze jsou prohozene "r" a "w" v open()

Co dělá příkaz NOHUP a která systémová volání použije?[]

NOHUP PRIKAZ - zajistí pokračování PRIKAZu i po mém odhlášení (No HangUp)

Mohl by pouzit kernel call sigaction() ($man 2 sigaction nebo na Solarisu $man -s 2 sigaction).

nebo sigprocmask() -- blokuje signaly -- ty pak cekaji na odblokovani (neztrati se).

Kolik je v Linuxu signálů a) <10 b) <100 c) 2^32 d) záleží na velikosti swap[]

signálů je něco mezi 20 a 30 (asi vice)

     Name             Value   Default    Event
     SIGHUP           1       Exit       Hangup (see termio(7I))
     SIGINT           2       Exit       Interrupt (see termio(7I))
     SIGQUIT          3       Core       Quit (see termio(7I))
     SIGILL           4       Core       Illegal Instruction
     SIGTRAP          5       Core       Trace or Breakpoint Trap
     SIGABRT          6       Core       Abort
     SIGEMT           7       Core       Emulation Trap
     SIGFPE           8       Core       Arithmetic Exception
     SIGKILL          9       Exit       Killed
     SIGBUS           10      Core       Bus Error
     SIGSEGV          11      Core       Segmentation Fault
     SIGSYS           12      Core       Bad System Call
     SIGPIPE          13      Exit       Broken Pipe
     SIGALRM          14      Exit       Alarm Clock
     SIGTERM          15      Exit       Terminated
     SIGUSR1          16      Exit       User Signal 1
     SIGUSR2          17      Exit       User Signal 2
     SIGCHLD          18      Ignore     Child Status Changed
     SIGPWR           19      Ignore     Power Fail or Restart
     SIGWINCH         20      Ignore     Window Size Change
     SIGURG           21      Ignore     Urgent Socket Condition
     SIGPOLL          22      Exit       Pollable Event (see streamio(7I))
     SIGSTOP          23      Stop       Stopped (signal)
     SIGTSTP          24      Stop       Stopped (user) (see termio(7I))
     SIGCONT          25      Ignore     Continued
     SIGTTIN          26      Stop       Stopped (tty input) (see termio(7I))
     SIGTTOU          27      Stop       Stopped (tty output) (see termio(7I))
     SIGVTALRM        28      Exit       Virtual Timer Expired
     SIGPROF          29      Exit       Profiling Timer Expired
     SIGXCPU          30      Core       CPU time limit exceeded (see getrlimit(2))
     SIGXFSZ          31      Core       File size limit exceeded (see getrlimit(2))
     SIGWAITING       32      Ignore     Reserved
     SIGLWP           33      Ignore     Reserved
     SIGFREEZE        34      Ignore     Check point Freeze
     SIGTHAW          35      Ignore     Check point Thaw
     SIGCANCEL        36      Ignore     Reserved for threading support
     SIGLOST          37      Exit       Resource lost (for  example,  record-lock lost)
     SIGXRES          38      Ignore     Resource control exceeded (see setrctl(2))
     SIGJVM1          39      Ignore     Reserved for Java Virtual Machine 1
     SIGJVM2          40      Ignore     Reserved for Java Virtual Machine 2
     SIGRTMIN         *       Exit       First real time signal
     (SIGRTMIN+1)     *       Exit       Second real time signal
     ...
     (SIGRTMAX-1)     *       Exit       Second-to-last real time signal
     SIGRTMAX         *       Exit       Last real time signal


Co je to ACL?[]

Access Conrol List. Rozšiřuje práva souboru, pomoci těchto listů se může nastavit, který konkrétní uživatel do toho kterého souboru může zapisovat, číst atd..

Co delaji volani kill, exec, dup, fork, ...[]

kill posila signaly kill(signal,pid) exec nahradi stavajici proces novym dup duplikuje zadany file descriptor a priradi mu nejnizsi volny file descriptor fork vytvori noveho potomka

Co je to core a co to obsahuje[]

je to soubor, ktery obsahuje stav procesu pri padu programu

Co je to i-node, kde se nachazi a co obsahuje[]

i-node bude ve filesystému a obsahuje: vlastníka, typ (file|directory|FIFO|block device|character device), čas poslední změny souboru, čas posledního přístupu k souboru, čas poslední změny daného i-node, přístupové práva, počet links na soubor (co hardlink to +1 link), velikost souboru, adresy datových bloků patřících souboru (více o datových blocích v i-node), (neobsahuje název souboru ten je v adresáři)

zdroj: http://www.angelfire.com/myband/binusoman/Unix.html

Jakym prikazem se provadi kontrola filesystemu ufs, ext2, nfs[]

fsck

Sdilena pamet mezi procesy - jak se vytvori, jak se pouziva[]

BSD funkce mmap + obodby System V má IPC někdo doplňte co se o tom řikalo :-D

Signaly - jak predefinovat handlery;co se stane,kdyz nejsou definovane; uvest priklad ctyr signalu a reakci na ne[]

nastudujte tady: http://users.actcom.co.il/~choo/lupg/tutorials/signals/signals-programming.html

Mohl by pouzit kernel call sigaction()

4 signaly -- viz vyse

ARP protokol[]

ARP slouží ke zjištění MAC adresy. Na lokální síti pošle stanice broadcast na IP a z dané IP se vrátí číslo MAC.

jak nastavit quoty, quota[]

http://linux.mikroservis.cz/quota.html (tam něco je :D)

UMASK jak se spousti, kecy okolo[]

UMASK je bitová maska pro nově vytvořené soubory, defaultní práva jsou v bashi pro soubory a adresáře . Nove vytvořený soubor má práva . Např. UMASK = , , .

nastaveni:
umask 002

Nakreslit strukturu inode-datova oblast[]

Zeptal se treba, kde je ulozenej korenovej adresar

Meziproc. kom. : starej znamej priklad: tar | gzip , mel jsem to nakreslit a popsat.[]

Co udela if(exec("/bin/ls")) printf("BLA -1") else printf ("BLA -2")[]

Provede se pouze spuštění /bin/ls. Funkce exec nahradí kód procesu novým kódem, zde /bin/ls a návratová hodnota -1 se vrací jen v případě chyby, pokud by došlo k chybě, vypíše se "BLA -1", protože -1 je vyhodnocena jako true.

if ( exec "/bin/ls" ) then
   printf "BLA-1\n"; #execuetd if () je zero
else
   printf "BLA-2\n";
fi;

vypise:

bin          GNUstep      mail         net-setup    pok          signals
Desktop      Mail         mpi          PAR          public_html  Xrootenv.0
BLA-1

vypise seznam souboru a adresaru v aktualnim adresari a BLA-1 mozna, ze v C to provede exec -- nahradi aktualni proces procesem /bin/ls, ten vypise seznam souboru a adresaru v aktualnim adresari a nic vic (ani BLA-1 ani BLA-2).

To je proto, ze ty zavorky okolo exec to pusti v subshellu a v tom se to execne.

Co udela printf("VYPIS %d",fork());[]

Návratová hodnota fork() je v rodiči PID potomka v potomkovy 0. Takže v rodičovy vypíše číslo PID potomka a v potomkovi vypíše nula.

Co udela if (fork()) exit();[]

Návratová hodnota fork() je v rodiči PID potomka v potomkovy 0. Tedy zde se provede exit() pokud je návrat nenulový, takže rodičovský proces zkončí a potomek pokračuje dál.

Jsou nejake specialni file descriptory?[]

Mam adresar root v nem 100mb soubor AA hardlink HH a symbolicky link SS nakreslete jak to bude usporadano (cylinder group, tabulku inodu, pak inode od root, souboru AA a toho symbolickeho linku), datove bloky od (root,AA,SS). To ze soubor ma 100Mb je tam proto, ze jsou pak potreba na data ukazatele 0,1,2 urovne (to ze me vypacil pri zkousce). Co se stane pri rm HH: snizi se o 1 pocet hardlinku v inodu a smaze se HH z root zaznamu o jmenech soubotu

Pipe na urovni jadra, jak to funguje (pak se ptal na pojmenovanou pipe).[]

Vyjmenujte alespon 4 signaly[]

      Signal     Value     Action   Comment
      -------------------------------------------------------------------------
      SIGHUP        1       Term    Hangup detected on controlling terminal
                                    or death of controlling process
      SIGINT        2       Term    Interrupt from keyboard
      SIGQUIT       3       Core    Quit from keyboard
      SIGILL        4       Core    Illegal Instruction
      SIGABRT       6       Core    Abort signal from abort(3)
      SIGFPE        8       Core    Floating point exception
      SIGKILL       9       Term    Kill signal
      SIGSEGV      11       Core    Invalid memory reference
      SIGPIPE      13       Term    Broken pipe: write to pipe with no readers
      SIGALRM      14       Term    Timer signal from alarm(2)
      SIGTERM      15       Term    Termination signal
      SIGUSR1   30,10,16    Term    User-defined signal 1
      SIGUSR2   31,12,17    Term    User-defined signal 2
      SIGCHLD   20,17,18    Ign     Child stopped or terminated
      SIGCONT   19,18,25            Continue if stopped
      SIGSTOP   17,19,23    Stop    Stop process
      SIGTSTP   18,20,24    Stop    Stop typed at tty
      SIGTTIN   21,21,26    Stop    tty input for background process
      SIGTTOU   22,22,27    Stop    tty output for background process

Proces s PID 1, kdy vznika, co dela, odkud cte konfiguraci.[]

 $ ps -p 1       
 PID TTY          TIME CMD
   1 ?        00:00:00 init
      Init  is the parent of all processes.  Its primary role is
      to create processes from  a  script  stored  in  the  file
      /etc/inittab

identifikace procesu[]

EUID, ...

procfs[]

pseudo file system, nezabira misto na disku
generuje ho jadro, obsahuje informace o bezicich procesech
adresar /proc

ls -l /proc
total 262150
dr-xr-xr-x  5 root       root               0 2006-12-15 11:31 1
dr-xr-xr-x  5 root       root               0 2006-12-15 11:31 10
dr-xr-xr-x  5 root       root               0 2006-12-15 11:31 101
dr-xr-xr-x  5 root       root               0 2006-12-15 11:31 102
dr-xr-xr-x  5 root       root               0 2006-12-15 11:31 103
dr-xr-xr-x  5 root       root               0 2006-12-15 11:31 104
dr-xr-xr-x  5 root       root               0 2006-12-18 23:58 12341
(...)
ls -l /proc/1
total 0
dr-xr-xr-x 2 root root 0 2006-12-18 23:57 attr
-r-------- 1 root root 0 2006-12-18 23:57 auxv
-r--r--r-- 1 root root 0 2006-12-18 13:31 cmdline
lrwxrwxrwx 1 root root 0 2006-12-18 23:57 cwd -> /
-r-------- 1 root root 0 2006-12-18 23:57 environ
lrwxrwxrwx 1 root root 0 2006-12-18 23:57 exe -> /sbin/init
dr-x------ 2 root root 0 2006-12-18 23:57 fd
-r--r--r-- 1 root root 0 2006-12-18 23:57 maps
-rw------- 1 root root 0 2006-12-18 23:57 mem
-r--r--r-- 1 root root 0 2006-12-18 23:57 mounts
-r-------- 1 root root 0 2006-12-18 23:57 mountstats
-rw-r--r-- 1 root root 0 2006-12-18 23:57 oom_adj
-r--r--r-- 1 root root 0 2006-12-18 23:57 oom_score
lrwxrwxrwx 1 root root 0 2006-12-18 23:57 root -> /
-rw------- 1 root root 0 2006-12-18 23:57 seccomp
-r--r--r-- 1 root root 0 2006-12-18 23:57 smaps
-r--r--r-- 1 root root 0 2006-12-18 23:57 stat
-r--r--r-- 1 root root 0 2006-12-18 23:57 statm
-r--r--r-- 1 root root 0 2006-12-18 13:31 status
dr-xr-xr-x 3 root root 0 2006-12-18 23:57 task
-r--r--r-- 1 root root 0 2006-12-18 23:57 wchan

jak jdou po sobě: kernel, shell, bootloader, init, shell, getty, login, rc skripty a ls[]

1) bootloader 2) kernel 3) init 4) rc skripty 5) getty 6) login 7) shell 8) ls Zkuste to opravit, jsem to vymyslel jen tak ;)

Jaka je navratova hodnota exec nebo co vlastne exec udela?[]

Exec peepise vykonny kod, takze se premaze ten puvodni. (nahraje do paměti soubor spustitelný a pak hupne na entry point - není z ní žádný návrat pokud proběhne jak má) Pokud se navrátí bude to například protože nenašla soubor a návratový kód bude asi -1 a errno zjistíme co bylo za problém ;)

ls | grep ddd 2>&1 | wc –l[]

     $ ls | grep ddd 2>&1 | wc -l
     0

Mame 4 sitova spojeni a chceme je obslouzit pak taky chceme cekam na reakci z klavesnice, jak to vsechno udelat.[]

Musi to byt pasivni cteni, tedy ne v cyklu. Zde staci odpoved, select - tim lze udelat uplne vse, jsou i jine moznosti napr pool (nebo neco takovyho)

Advertisement