Kurs administrowania systemem Linux

Język wykładowy Polski
Semestr Letni
Status Poddana pod głosowanie
Opiekun Tomasz Wierzbicki
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj Kurs inżynierski
ECTS 5
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

Celem kursu jest rozwinięcie u uczestników praktycznych umiejętności zarządzania systemem Linux na komputerze osobistym lub serwerze. Zostaną przedstawione podstawowe informacje na temat budowy i sposobu działania systemów uniksopodobnych, a szczególnie różnych dystrybucji Linuksa. Zajęcia są adresowane do wszystkich studentów, którzy chcieliby sprawnie korzystać na co dzień z systemów linuksowych i którzy są zdania, że to użytkownik powinien mieć władzę na komputerem, a nie komputer nad użytkownikiem. Mimo że osiągnięcie tego celu wymaga sporego zaangażowania, wiedzy i praktycznych umiejętności, nie zakłada się wstępnego doświadczenia słuchaczy w zakresie administrowania Linuksem. Wystarczy wola odłączenia myszy i chęć pracy z terminalem tekstowym. ### ORIENTACYJNY SPIS ZAGADNIEŃ PORUSZANYCH NA ZAJĘCIACH #### I. WSTĘP: ŻYCIE Z LINUKSEM 1. Hardware i software. Budowa komputera i struktura oprogramowania podstawowego. Jądro i przestrzeń użytkownika. Proces rozruchu komputera. Instalacja systemu i rozpoczęcie pracy z Linuksem. 2. Terminal tekstowy. Powłoka systemowa. Podstawowe polecenia. Uruchamianie programów, standardowe strumienie wejściowe i wyjściowe, potoki. Uruchamianie i zatrzymywanie procesów. Zarządzanie plikami, prawa dostępu, kopiowanie, archiwizowanie. Edytory tekstu. Przetwarzanie plików tekstowych. 3. Użytkownik root. Hasła. Su i sudo. #### II. ZAGADNIENIA SZCZEGÓŁOWE 1. Hardware i jego diagnostyka, lshw, lsusb, lspci, dmidecode, i2c-tools i in. Urządzenia. Sysfs i udev. Udevd i udevadm. 2. Dyski. Protokoły SCSI i ATA. USB Storage. Hdparm i smartmontools. 3. Partycje. MBR i GPT. Narzędzia do partycjonowania dysków, fdisk, parted. 4. Urządzenia blokowe, device mapper, losetup, dm-crypt, LVM. 5. Systemy plików. Budowa systemu plików, inode. Księgowanie. Systemy ext2, ext3 i ext4. Tworzenie i zarządzanie systemami plików. Diagnostyka systemów plików, fsck. Montowanie, mount, /etc/fstab itp. Dowiązania, pliki specjalne. FAT i NTFS. Filesystem in userspace. Systemy plików btrfs, ufs, zfs, ffs i in. Szczególne wymagania dysków SSD, discard i fstrim. Linux Directory Structure, katalogi /etc, /usr, /var, /tmp, /boot i ich przeznaczenie. 6. Przestrzeń wymiany w osobnej partycji i w pliku. Przestrzeń wymiany w pamięci RAM, zram, zswap. 7. Rozruch komputera. Firmware, Legacy BIOS i UEFI. Konfiguracja, efibootmgr. Inne (Coreboot, Libreboot, U-Boot). Bootloadery drugiego poziomu. GNU Grub 2 i jego konfiguracja. Informacja o Legacy GRUB. Inne popularne bootloadery, Syslinux, LILO, systemd-boot (Gummiboot). Konfiguracja wielosystemowa z BIOS i UEFI, współżycie z systemem MS Windows, rEFInd. PXE i rozruch poprzez sieć komputerową. BOOTP i TFTP. Plymuth i estetyka rozruchu. 8. Start jądra. Tworzenie i konfigurowanie initramfs. Uruchamianie awaryjne i tryb pojedynczego użytkownika. Moduły jądra, modprobe, lsmod, rmmod, /etc/modules. 9. Konfiguracja systemu. Katalog /etc i jego struktura. 10. Uruchamianie przestrzeni użytkownika. System V Init. Proces init, inittab, init.d i rc?.d, runlevels, telinit, update-rc.d, insserv, run-parts. Informacja o Upstart. 11. Systemd i jego konfiguracja. Filozofia działania systemd. Organizacja i składnia plików konfiguracyjnych. Demony systemd. Jednostki systemd. Cele i metody ich osiągania. Serwisy i inne jednostki. 12. Zarządzanie użytkownikami. Logowanie do systemu, getty i login. Konsola zdalna i minicom. Hasła, passwd i shadow. PAM. Własność procesów, suid. 13. Dziennik systemowy, rsyslog, logger, /var/log, journalctl i dmesg. Zdalny zapis dziennika. Protokół SMTP i narzędzia do korzystania z niego. 14. Synchronizacja czasu, NTP, ntpd, ntpdate, open-ntp, chrony, systemd-timesyncd. 15. Planowanie wykonania procesów, procesy wsadowe. Cron, crontab, anacron, systemd-timer. Polecenie at. 16. Zarządzanie procesami i ich diagnostyka, ps, lsof, strace, ltrace. Wysyłanie sygnałów do procesów, kill, killall, nohup. Wątki. Pomiar czasu procesora, obciążenia, zużycia pamięci i operacji wejścia/wyjścia (top, times, vmstat, iostat, iotop, pidstat itp). Priorytety procesów, nice. Komunikacja międzyprocesowa. Gniazda. Dbus. Komunikacja między użytkownikami, wall. 17. Biblioteki współdzielone, /lib, /usr/lib, ldd, ldconfig, /etc/ld.so.conf, LD_LIBRARY_PATH. 18. Repozytoria pakietów i dystrybucje Linuksa. Debian, Ubuntu i pakiety deb. Konfigurowanie apt i aptitude. RHEL, Fedora, Centos i rpm. Arch Linux i pacman. Dystrybucje specjalizowane, Kali Linux, Tails i in. Krzyżowanie dystrybucji. Linux from scratch. 19. Efektywna praca w trybie tekstowym. Powłoki bash (sh, dash, ash), c-shell (csh, tcsh), zsh. Biblioteka readline. Terminal, terminfo, termcap. Screen i tmux. Konfiguracja iterpretera powłoki. Tekst zachęty, Powershell. Lokalizacja i internacjonalizacja, locale, tzdata, kodowanie znaków. 20. Skrypty powłoki. Narzędzia sed, awk. Polecenia użytkowe wc, tr, sort, head, tail, tee, xargs, grep, find, locate i wiele innych. 21. Separacja procesów, namespaces, cgroups. Piaskownice, firejail i in. Apparmor. Selinux. 22. Wirtualizacja. LXC i docker. Qemu i KVM. Xen. Informacja o programie Virtualbox. 23. Sieci komputerowe i podstawowa konfiguracja sieci w Linuksie. Podstawowe polecenia konfiguracyjne. Konfiguracja statyczna i dynamiczna. DHCP. Gniazda. Bezpieczeństwo i iptables. Usługi sieciowe, sshd, inetd i xinetd. Gniazda systemd. RPC. Usługi nazw, bind9. 24. Usługi drukowania, lpr i Cups. 25. Informacja o trybie graficznym (gdyby kiedyś był potrzebny). Serwer wyświetlania X Windows, xinit, startx. Graficzny zarządca logowania (xdm, gdm, sddm, lightdm i in). Zarządca okien (kwin, Metacity, xfwm, Openbox i wiele in). Typy zarządców okien (tiling, stacking, compositing, dynamic). Środowisko graficzne (KDE, Gnome, XFCE i wiele innych). XTerminale (xterm, urxvt, konsole, terminal i in). Niedoskonałości serwera X Windows. Weyland. Zdalny terminal graficzny (xpra, xephyr, xnest, RDP, Winswitch, vnc, x2go, NX tech i in.) 26. Oprogramowanie Open Source. FSF. Typy licencji. GNU i BSD. Zakres materiału obejmuje większość zagadnień wymaganych na egzaminach certyfikacyjnych CompTIA Linux+ (LX0-103 i LX0-104) oraz LPIC-1 (LPI 101 i LPI 102 — Certified Linux Administrator). ### LITERATURA 1. Brian Ward, _Jak działa Linux. Podręcznik administratora_, wydanie II, Helion 2015. 2. Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, Dan Mackin, _Unix i Linux. Przewodnik administratora systemów_, wydanie V, Helion 2018.