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/passwd
jest możliwa, ale wymaga uprawnień administratora (root). - Zmiany w pliku
/etc/passwd
powinny 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.backup
Do edycji tego pliku zaleca się używanie narzędzi takich jak
useradd
,usermod
iuserdel
, 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).