W systemie Linux informacje o okresie ważności hasła są zapisane w pliku
A. passwd
B. grub
C. bash
D. shadow
Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.12-X-17.01).
Informacje o okresie ważności hasła w Linuksie są zapisywane w pliku /etc/shadow, więc odpowiedź „shadow” jest właściwa. Ten plik przechowuje dane wrażliwe związane z hasłami użytkowników, m.in. skrót hasła, datę ostatniej zmiany hasła, minimalny i maksymalny czas używania hasła, liczbę dni ostrzeżenia przed wygaśnięciem oraz ewentualną datę blokady konta. W praktyce właśnie na podstawie pól z /etc/shadow system wie, czy użytkownik musi już zmienić hasło przy logowaniu. Do sprawdzania tych informacji używa się np. polecenia chage -l nazwa_użytkownika albo passwd -S nazwa_użytkownika. Moim zdaniem warto kojarzyć to bardzo praktycznie: /etc/passwd opisuje konto, a /etc/shadow pilnuje haseł i ich ważności. Z dobrych praktyk administracyjnych wynika, że /etc/shadow powinien mieć mocno ograniczone uprawnienia, zwykle dostęp tylko dla roota i odpowiedniej grupy systemowej, bo wyciek skrótów haseł może ułatwić ataki offline. W administracji Linuksem to jest jedna z podstaw bezpieczeństwa kont użytkowników.
W tym pytaniu łatwo pomylić kilka nazw, bo wszystkie brzmią jak elementy systemu Linux, ale pełnią zupełnie inne role. Bash nie jest miejscem przechowywania informacji o ważności hasła. To powłoka systemowa, czyli program, w którym użytkownik wpisuje polecenia, uruchamia skrypty i pracuje w terminalu. Plik konfiguracyjny powłoki może wpływać na środowisko pracy użytkownika, na przykład zmienne, aliasy czy wygląd prompta, ale nie decyduje o tym, kiedy hasło wygasa. Grub też nie pasuje, bo jest programem rozruchowym. Jego zadaniem jest uruchomienie systemu operacyjnego, wybór jądra, przekazanie parametrów startowych i obsługa menu bootowania. Nie ma związku z polityką haseł kont użytkowników w działającym systemie. Nazwa passwd bywa najbardziej myląca, bo istnieje zarówno plik /etc/passwd, jak i polecenie passwd. Plik /etc/passwd przechowuje podstawowe informacje o kontach: nazwę użytkownika, UID, GID, katalog domowy i powłokę logowania. Dawniej mógł zawierać hasła, ale ze względów bezpieczeństwa obecnie hasła i dane o ich starzeniu przeniesiono do /etc/shadow. Polecenie passwd może zmieniać hasło, ale pytanie dotyczy pliku, nie narzędzia. Typowy błąd polega więc na skojarzeniu słowa „passwd” z hasłem i pominięciu faktu, że w nowoczesnych systemach Linux szczegóły bezpieczeństwa kont są trzymane właśnie w shadow.