Linux w kwalifikacji INF.02: najważniejsze zasady, przykłady i 213 powiązanych pytań w banku.
W Linuksie o dostępie do pliku decydują trzy bity rwx nadane osobno właścicielowi, grupie i pozostałym użytkownikom, a większość ustawień systemu to zwykłe pliki tekstowe w /etc. Zadania z INF.02 rzadko pytają o definicje: częściej trzeba odczytać wynik polecenia, przeliczyć uprawnienia na zapis ósemkowy albo wskazać plik z konkretną konfiguracją. Ucz się więc na wpisach i wynikach poleceń, bo dokładnie one pojawiają się w arkuszu egzaminacyjnym.
Katalogi systemu według FHS
Standard FHS ustala, że konfiguracja leży w /etc, dane zmienne w /var, a logi systemowe w /var/log. Katalogi domowe użytkowników to /home/nazwa, natomiast konto root ma osobny katalog /root, który leży poza /home. Programy dostępne dla wszystkich są w /usr/bin, a narzędzia administracyjne w /usr/sbin.
Pliki urządzeń są w /dev, gdzie /dev/sda1 oznacza pierwszą partycję pierwszego dysku SATA lub SCSI, a /dev/nvme0n1p1 pierwszą partycję dysku NVMe. Katalogi /proc i /sys nie leżą na dysku: jądro tworzy je w pamięci i udostępnia przez nie stan procesów oraz sprzętu, dlatego /proc/cpuinfo pokazuje dane procesora. Obraz jądra i pliki rozruchowe znajdziesz w /boot, a pliki tymczasowe w /tmp.
Uprawnienia rwx i zapis ósemkowy
Każdy plik ma trzy zestawy uprawnień: właściciela, grupy i pozostałych. W zapisie ósemkowym r to 4, w to 2, a x to 1, więc każdą trójkę sumujesz osobno. Zapis -rwxr-xr-- z ls -l daje 4+2+1, potem 4+1 i na końcu 4, czyli 754, a pierwszy znak wiersza to typ pliku, nie uprawnienie: myślnik oznacza plik zwykły, litera d katalog.
W drugą stronę 640 to rw-r-----: właściciel czyta i zapisuje, grupa tylko czyta, pozostali nie mają nic. Przy katalogu x pozwala do niego wejść i sięgnąć po plik o znanej nazwie, r pozwala wypisać nazwy plików, a w tworzyć i usuwać wpisy. Usunięcie pliku zależy więc od prawa zapisu do katalogu, a nie do samego pliku, dlatego plik bez prawa zapisu wciąż da się skasować.
Polecenia chmod, chown i umask
Polecenie chmod przyjmuje zapis ósemkowy albo symboliczny: chmod 755 skrypt.sh ustawia wszystkie dziewięć bitów naraz, a chmod u+x skrypt.sh dodaje tylko x właścicielowi i nie rusza pozostałych. Właściciela zmienia chown anna:uczniowie raport.txt i wymaga to uprawnień roota. Samą grupę zmienia chgrp i może to zrobić właściciel pliku, o ile sam należy do grupy docelowej.
Maska umask nie nadaje uprawnień, tylko wycina bity z wartości bazowych 666 dla plików i 777 dla katalogów. Przy umask 022 nowy plik dostaje 644, a katalog 755; przy umask 027 wychodzi 640 dla pliku i 750 dla katalogu. Bity są kasowane, a nie odejmowane, więc umask 023 daje plik 644, a nie 643, bo w wartości bazowej pliku i tak nie było bitu x.
Konta w /etc/passwd i hasła w /etc/shadow
Wiersz w /etc/passwd ma siedem pól rozdzielonych dwukropkiem: nazwa konta, znacznik hasła, UID, GID, opis, katalog domowy i powłoka. Litera x w drugim polu oznacza, że skrót hasła trafił do /etc/shadow. UID 0 ma root, konta systemowe mieszczą się poniżej 1000, a konta zwykłych użytkowników w Debianie i Ubuntu numerowane są od 1000 w górę.
Plik /etc/passwd czyta każdy użytkownik, dlatego skróty haseł leżą osobno: w Debianie i Ubuntu /etc/shadow należy do root:shadow i ma prawa 640. Powłoka /usr/sbin/nologin w ostatnim polu blokuje logowanie kont usług. Grupy dodatkowe opisuje /etc/group, a usermod -aG grupa użytkownik dopisuje konto do grupy; pominięcie opcji -a odbiera użytkownikowi wszystkie pozostałe grupy dodatkowe.
Procesy, przekierowania i potoki
Polecenie ps aux wypisuje wszystkie procesy razem z PID, właścicielem i zużyciem procesora, a top odświeża tę listę na bieżąco. Polecenie kill wysyła domyślnie sygnał 15, czyli SIGTERM, po którym program może posprzątać i zakończyć się porządnie. Sygnał kill -9 to SIGKILL, którego proces nie przechwyci, więc sięga się po niego dopiero wtedy, gdy SIGTERM nie zadziałał.
Znak > kieruje standardowe wyjście do pliku i nadpisuje jego zawartość, >> dopisuje na końcu, a 2> przechwytuje sam strumień błędów. Potok | podaje wyjście jednego polecenia na wejście następnego: ps aux | grep sshd | wc -l policzy pasujące wiersze, ale doliczy też własny proces grep. Pewniejszy wynik daje pgrep -c sshd albo zapis grep [s]shd, który nie pasuje do samego siebie.
Plik fstab, systemctl i menedżery pakietów
Partycję montujesz przez mount /dev/sdb1 /mnt/dane, odłączasz przez umount /mnt/dane, a jej UUID pokaże blkid. Wiersz /etc/fstab ma sześć pól: urządzenie, punkt montowania, system plików, opcje, dump i kolejność sprawdzania; w szóstym polu partycja główna ma 1, pozostałe 2, a 0 wyłącza kontrolę. Po edycji sprawdź wpisy poleceniem mount -a, bo błąd w tym pliku potrafi zatrzymać start systemu.
Usługami zarządza systemctl: start uruchamia usługę od razu, enable włącza tylko autostart po restarcie, a status pokazuje stan i ostatnie wiersze logu. Samo enable niczego nie uruchomi, więc obie czynności naraz wykonuje systemctl enable --now nazwa. Pakiety .deb instaluje apt install po wcześniejszym apt update, a pakiety .rpm w Fedorze i RHEL instaluje dnf install.
Z tym działem powiązano 213 pytań w banku INF.02. Na ekranie Wszystkie pytania wybierz jeden z tagów: linux. Możesz wtedy przejrzeć zadania tylko z interesującego Cię obszaru.