W systemie Linux hasła użytkowników są przechowywane w pliku
A. password
B. users
C. passwd
D. groups
Pytanie z egzaminu CKE, październik 2013 (arkusz E.12-X-13.10).
Odpowiedź passwd jest uznawana za poprawną, bo w Linuksie podstawowe informacje o kontach użytkowników znajdują się w pliku /etc/passwd. To klasyczny plik znany z systemów Unix i Linux, wykorzystywany przez system do identyfikowania użytkowników, ich UID, GID, katalogu domowego oraz powłoki logowania, np. /bin/bash. Typowy wpis ma postać podobną do: jan:x:1001:1001:Jan Kowalski:/home/jan:/bin/bash. Warto jednak znać ważny szczegół praktyczny: we współczesnych dystrybucjach właściwe skróty haseł nie są już trzymane bezpośrednio w /etc/passwd, tylko w /etc/shadow, a w passwd zwykle widnieje znak x. Mimo to w pytaniach szkolnych i egzaminacyjnych często mówi się skrótowo, że chodzi o plik passwd. Z mojego doświadczenia najlepiej zapamiętać to tak: /etc/passwd opisuje użytkowników, /etc/shadow chroni hasła, a /etc/group opisuje grupy. Dobra praktyka administracyjna to nie edytować tych plików byle jak w zwykłym edytorze, tylko używać narzędzi typu useradd, usermod, passwd albo vipw, bo literówka może uszkodzić logowanie do systemu.
W tym pytaniu łatwo pomylić nazwę pliku z ogólnym znaczeniem słowa hasło. W Linuksie nie używa się pliku o nazwie users ani password jako standardowego miejsca przechowywania informacji o kontach użytkowników. Nazwa users brzmi logicznie, bo przecież chodzi o użytkowników, ale w typowym układzie katalogu /etc taki plik nie pełni tej roli. System korzysta z ustalonych plików konfiguracyjnych wywodzących się ze standardów Unix, a podstawowym z nich jest /etc/passwd. Plik groups też może wydawać się powiązany, ale dotyczy grup użytkowników, czyli np. przypisania kont do grup administracyjnych, projektowych albo systemowych. W praktyce odpowiada mu najczęściej /etc/group, a nie magazyn haseł. Odpowiedź password jest natomiast typową pułapką językową: po angielsku password oznacza hasło, ale standardowa nazwa pliku to passwd, skrócona historyczna forma. Trzeba też pamiętać o współczesnym aspekcie bezpieczeństwa. Dawniej zaszyfrowane hasła faktycznie znajdowały się w /etc/passwd, lecz obecnie ich skróty są przeniesione do /etc/shadow, który ma znacznie bardziej restrykcyjne uprawnienia. Moim zdaniem to ważna rzecz, bo pokazuje różnicę między odpowiedzią egzaminacyjną a realną administracją systemem. /etc/passwd jest zwykle czytelny dla wielu procesów, bo system potrzebuje danych o użytkownikach, ale nie powinien ujawniać hashy haseł zwykłym kontom. Dlatego poprawne myślenie jest takie: passwd identyfikuje bazowy plik kont użytkowników, a shadow zabezpiecza właściwe dane uwierzytelniające.