piątek,
Plik passwd
Plik /etc/passwd jest jednym z głównych plików konfiguracyjnych w systemach wywodzących się od Uniksa i odgrywa fundamentalną rolę w zarządzaniu użytkownikami systemu.
Struktura pliku /etc/passwd
Plik /etc/passwd zawiera informacje o kontach użytkowników. Każda linia w tym pliku odpowiada jednemu użytkownikowi i składa się z siedmiu pól rozdzielonych dwukropkiem (:). Oto przykład linii z tego pliku:
nazwa_użytkownika:x:UID:GID:pełna_nazwa_użytkownika:katalog_domowy:powłoka
Gdzie:
- nazwa_użytkownika – nazwa, którą użytkownik używa do logowania.
- x – dawniej to pole zawierało zaszyfrowane hasło użytkownika, ale ze względów bezpieczeństwa hasła przeniesiono do pliku
/etc/shadow, współcześnie w tym miejscu często widnieje znak 'x'. - UID (User ID) – unikalny numer identyfikacyjny przypisany do użytkownika.
- GID (Group ID) – numer identyfikacyjny głównej grupy użytkownika.
- pełna_nazwa_użytkownika – często jest to imię i nazwisko użytkownika lub krótki opis konta.
- katalog_domowy – ścieżka do katalogu domowego użytkownika.
- powłoka – domyślna powłoka uruchomiona po zalogowaniu użytkownika.
UID i GID
UID (User ID) i GID (Group ID) w /etc/passwd są ważne dla mechanizmów kontroli dostępu i uprawnień. Użytkownicy z UID niższym niż 1000 są zwykle użytkownikami systemowymi, a wyższe UID są przypisywane zwykłym użytkownikom.
Zastosowania passwd
Plik /etc/passwd jest wykorzystywany do przechowywania podstawowych informacji o kontach użytkowników. Choć hasła są przechowywane w pliku /etc/shadow, /etc/passwd nadal odgrywa ważną rolę w procesie logowania. Narzędzia systemowe i aplikacje często odwołują się do tego pliku, aby uzyskać informacje o użytkownikach.
Edycja /etc/passwd
- Bezpośrednia edycja pliku
/etc/passwdjest możliwa, ale wymaga uprawnień administratora (root). - Zmiany w pliku
/etc/passwdpowinny być dokonywane ostrożnie, najlepiej przez doświadczonego administratora systemu. Zaleca się tworzenie kopii zapasowej pliku przed dokonaniem zmian.
sudo cp /etc/passwd /etc/passwd.backupDo edycji tego pliku zaleca się używanie narzędzi takich jak
useradd,usermodiuserdel, które automatycznie aktualizują plik, zapobiegając błędom.
Praca z plikiem passwd
Bezpośrednia edycja pliku /etc/passwd jest ryzykowna i może prowadzić do problemów z systemem, dlatego należy zachowywać ostrożność.
O ile to możliwe, warto jako pośredników używać narzędzi systemowych, np. usermod. Z drugiej strony wielu doświadczonych użytkowników uważa, że ręczne wprowadzanie zmian to szybsza i prostsza metoda, a w sytuacjach awaryjnych może być to jedyna dostępna opcja.
Dodawanie użytkownika bez powłoki
Możesz dodać użytkownika, który nie ma dostępu do powłoki, poprzez ręczne dodanie linii do /etc/passwd i ustawienie jego powłoki na /bin/false lub /sbin/nologin. To przydatne dla usług systemowych lub innych kont, które potrzebują być w systemie, ale nie powinny mieć dostępu do powłoki.
Zmiana domyślnej powłoki użytkownika
Możesz zmienić domyślną powłokę użytkownika, edytując jego wpis w /etc/passwd. Np. zmiana /bin/bash na /bin/zsh zmieni powłokę użytkownika na Zsh.
Przywracanie usuniętego konta
Jeśli przypadkowo usuniesz konto, możesz przywrócić jego wpis w /etc/passwd z kopii zapasowej, ale pamiętaj o synchronizacji z /etc/shadow.
Historia pliku passwd
Historia pliku /etc/passwd odzwierciedla rozwój zarządzania uwierzytelnianiem i bezpieczeństwem użytkowników. Plik /etc/passwd wprowadzono we wczesnych systemach Unix, jego pierwotnym celem było przechowywanie informacji o użytkownikach systemu, takich jak nazwa użytkownika, zaszyfrowane hasło, UID (identyfikator użytkownika), GID (identyfikator grupy), pełna nazwa, katalog domowy i powłoka logowania.
Ponieważ plik /etc/passwd musiał być czytelny dla wszystkich użytkowników (aby umożliwić sprawdzenie tożsamości użytkownika podczas logowania), zaszyfrowane hasła były łatwo dostępne. To z kolei ułatwiało ataki słownikowe i siłowe na hasła. Aby rozwiązać ten problem, wprowadzono system "shadow passwords". W systemach wykorzystujących ten system, rzeczywiste zaszyfrowane hasła zostały przeniesione z /etc/passwd do nowego pliku, zazwyczaj /etc/shadow, który jest dostępny tylko dla superużytkownika (root).