Strona główna
» LINUX
»
Linux: Jak wyświetlić listę wszystkich użytkowników
Linux: Jak wyświetlić listę wszystkich użytkowników
Aby wyświetlić listę wszystkich użytkowników w systemie Linux, najlepszym poleceniem ogólnego przeznaczenia jest getent passwd. Jeśli potrzebujesz tylko nazw użytkowników, uruchom getent passwd | cut -d: -f1. Zazwyczaj jest to bardziej kompletne niż odczyt /etc/passwdbezpośredni, ponieważ getent korzysta z konfiguracji NSS (Name Service Switch) systemu , więc może uwzględniać konta dostarczane przez usługi takie jak LDAP lub inne skonfigurowane źródła tożsamości.
Wyświetl listę wszystkich użytkowników z getent
Otwórz terminal i uruchom:
getent passwd
Każdy wiersz to rekord użytkownika. Aby wyświetlić tylko nazwy logowania, użyj:
getent passwd | cut -d: -f1
Możesz również sprawdzić jedno znane konto bez przewijania całej listy:
getent passwd alice
Dokumentacja biblioteki GNU C wyjaśnia, że NSS kontroluje sposób, w jaki bazy danych systemowych, takie jak , passwdsą rozwiązywane za pomocą /etc/nsswitch.conf. Zobacz dokumentację biblioteki GNU C NSS .
getent passwdwyświetla rekordy kont dostępne poprzez skonfigurowane źródła bazy danych użytkowników.
Wyświetl listę użytkowników lokalnych z /etc/passwd
Jeśli chcesz, aby konta były przechowywane w lokalnej bazie haseł, przeczytaj ten artykuł /etc/passwd. Plik zawiera jeden rekord rozdzielony dwukropkami dla każdego konta lokalnego. Typowy rekord zawiera nazwę użytkownika, symbol zastępczy hasła, UID, podstawowy GID, pole komentarza, katalog domowy i powłokę logowania.
Tylko dla nazw użytkowników:
cut -d: -f1 /etc/passwd
Ten sam wynik można uzyskać za pomocą awk:
awk -F: '{print $1}' /etc/passwd
Lista ta zwykle zawiera zarówno użytkowników ludzkich, jak i konta usługowe, takie jak root, daemonlub konta utworzone przez zainstalowane oprogramowanie.
Polecenie cutwyodrębnia tylko pierwsze pole, które jest nazwą użytkownika.
Wyświetl kompletne lokalne zapisy kont
Aby sprawdzić cały plik lokalny, użyj opcji lessumożliwiającej wygodne przewijanie:
less /etc/passwd
Możesz również wydrukować plik bezpośrednio:
cat /etc/passwd
W nowoczesnych systemach Linux pole hasła zazwyczaj zawiera x. Nie oznacza to jednak, że hasło jest przechowywane jako zwykły tekst w /etc/passwd; skróty haseł są zazwyczaj przechowywane oddzielnie w /etc/shadow, który ma bardziej restrykcyjne uprawnienia. Projekt podręcznika Linux dokumentuje siedem pól i to zachowanie ukrytego hasła w passwd(5) .
Pełny /etc/passwdwpis zawiera nazwę użytkownika, UID, GID, katalog domowy, powłokę i inne pola konta.
Wyświetlanie nazw użytkowników za pomocą Bash compgen
Jeśli używasz Bash, compgenmożesz wygenerować kandydatów do uzupełnienia nazwy użytkownika:
compgen -u
Aby uzyskać dłuższy wynik, przejrzyj go w następujący sposób:
compgen -u | less
Lub usuń powtarzające się nazwy i posortuj dane wyjściowe:
compgen -u | sort -u
compgenjest wbudowaną funkcją Basha, więc jest mniej uniwersalna niż getentw przypadku skryptów, które muszą działać w różnych powłokach. Dokumentacja podręcznika GNU Bashcompgen jest częścią funkcji programowalnego uzupełniania w Bashu.
W Bash compgen -u | lesszapewnia listę nazw użytkowników podzieloną na strony.
Jak wyświetlić zwykłych użytkowników zamiast kont usługowych
Nie ma jednego punktu odcięcia UID, który byłby prawidłowy dla każdej dystrybucji lub organizacji Linuksa. Wiele systemów rezerwuje niższe UID dla kont systemowych i przypisuje zwykłych użytkowników na podstawie skonfigurowanego minimum, ale ta polityka może się różnić. Jeśli Twój system używa /etc/login.defs, możesz sprawdzić jego skonfigurowane minimum za pomocą:
grep '^UID_MIN' /etc/login.defs
Możesz również poszukać kont z interaktywnymi powłokami, jako praktycznej wskazówki:
Jest to tylko heurystyka: konto może mieć interaktywną powłokę, nie będąc normalnym użytkownikiem komputera stacjonarnego, a użytkownicy zarządzani zewnętrznie mogą stosować się do innych zasad UID.
Zapisz, policz lub przeszukaj listę użytkowników
Gdy już masz potrzebną listę, standardowe narzędzia powłoki ułatwią jej ponowne wykorzystanie:
Zapisz nazwy użytkowników:getent passwd | cut -d: -f1 > ~/linux-users.txt
Najlepsze domyślne; podąża za skonfigurowanymi źródłami użytkownika NSS
cut -d: -f1 /etc/passwd
Tylko lokalne nazwy użytkowników
cat /etc/passwdlubless /etc/passwd
Inspekcja pełnych lokalnych rejestrów kont
compgen -u
Szybka lista nazw użytkowników z Bash
Dla większości administratorów i użytkowników komputerów stacjonarnych zacznij od getent passwd | cut -d: -f1. Używaj, /etc/passwdgdy celowo potrzebujesz tylko kont lokalnych.