Kurs administrowania systemem Linux lato 2020/21

Język wykładowy Polski
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.

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Tomasz Wierzbicki
cz 12:00-14:00 (s. ) 200 30 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Tomasz Wierzbicki
wt 18:00-20:00 (s. ) 15 9 0
Tomasz Wierzbicki
śr 14:00-16:00 (s. ) 15 6 0
Tomasz Wierzbicki
śr 18:00-20:00 (s. wirtualna3) 15 15 1

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Tomasz Wierzbicki 303 Po wcześniejszym umówieniu pocztą elektroniczną. Nie w trakcie lub bezpośrednio przed moimi zajęciami (plan zajęć jest dostępny w systemie Zapisy).