Ostatnia aktualizacja
Ważne jest, aby wiedzieć, kto ma dostęp do twojego komputera z systemem Linux (i kontrolę nad twoimi plikami), ale możesz łatwo wyświetlić listę użytkowników w systemie Linux, aby się dowiedzieć. Oto jak.
ten System operacyjny Linux oferuje polecenia do tworzenia i usuwania użytkowników oraz sprawdzania, którzy są zalogowani. Jednak w systemie nie ma polecenia, aby wyświetlić listę użytkowników, zalogowanych lub nie.
Mimo to istnieje kilka sposobów, aby to osiągnąć. Jeśli chcesz dowiedzieć się, jak wyświetlać listę użytkowników w systemie Linux, wykonaj poniższe czynności.
Dlaczego powinieneś sprawdzić swoją listę użytkowników Linuksa
Istnieje wiele powodów, dla których możesz chcieć wyświetlić listę użytkowników w systemie Linux. To dobra praktyka, jeśli chodzi o znajdowanie i usuwanie nieużywanych kont, na przykład. Z punktu widzenia bezpieczeństwa jest to również dobry sposób na upewnienie się, że nie ma intruzów tworzących konta użytkowników.
Jest to zadanie administracyjne, które prawdopodobnie powinieneś wykonywać przynajmniej raz w miesiącu. Jeśli używasz korporacyjnego serwera Linux, możesz chcieć to robić częściej.
Użytkownicy wymienieni w /etc/passwd
Wszystkie konta użytkowników twojego serwera Linux mają wpisy w pliku /etc/passwd. Każda linia reprezentuje użytkownika i ma siedem pól oddzielonych dwukropkami. Pola dostarczają informacji o użytkowniku.
- Nazwa użytkownika.
- Zaszyfrowane hasło (x wskazuje, że hasło jest rzeczywiście w /etc/shadow)
- Numer identyfikacyjny użytkownika (UID).
- Numer identyfikacyjny grupy użytkownika (GID).
- Pełna nazwa użytkownika, jeśli jest podana.
- Katalog domowy użytkownika.
- Powłoka logowania
To prowadzi nas do jednego sposobu na wypisanie wszystkich użytkowników systemu Linux. Możesz użyć mniej polecenie, aby zobaczyć cały plik, jeden ekran na raz.
mniej /etc/passwd.
Jeśli chcesz sprawdzić, czy dany użytkownik istnieje w systemie Linux, jest to dobre zastosowanie polecenia grep:
mniej hasła | grep Jeff.
Jeśli nie otrzymasz żadnych danych wyjściowych, ten użytkownik nie istnieje na serwerze Linux.
Mimo to to dużo informacji. Możesz go skrócić do samej nazwy użytkownika, na przykład za pomocą awk lub skaleczenie polecenia:
awk -F: '{print $1}' /etc/passwd. cut -d: -f1 /etc/passwd.
Jest to znacznie łatwiejsze do zrozumienia, ale nadal pozwala przeglądać wszystkie konta użytkowników oparte na systemie zmieszane z użytkownikami ludzkimi.
Jak korzystać z getent, aby wyświetlić listę użytkowników
Kolejne polecenie, getent, jest o wiele bardziej przydatny. Wyświetla wpisy z dowolna skonfigurowana baza danych na Twoim serwerze /etc/nsswitch.conf plik. Jednym z nich jest hasło Baza danych. Używać getent aby wyświetlić listę wszystkich użytkowników Linuksa, działa to tak:
Getent passwd
Wynik wygląda dokładnie tak samo, jak przy użyciu mniej polecenie, ale wyświetla listę wszystkich użytkowników LDAP w systemie Linux. Po raz kolejny nasz awk oraz skaleczenie polecenia mogą pomóc zobaczyć tylko pierwsze pole, nazwy użytkowników.
Jeśli chcesz sprawdzić, czy dany użytkownik istnieje w systemie Linux, getent ułatwia:
getent passwd jeff.
Ponownie, żadne dane wyjściowe z tego polecenia nie mówią, że użytkownik nie istnieje.
Kolejne wspaniałe zastosowanie dla getent jest sprawdzenie, ile kont użytkowników istnieje na serwerze. Odbywa się to za pomocą rurociągów getent's wyjście przez toaleta polecenie, tak:
getent passwd | wc-l.
Jak widać, mój system Linux ma łącznie 48 kont. Całkiem interesujące, ponieważ jestem jedynym, który go używa, ale to tylko pokazuje, ile kont systemowych jest tworzonych w Linuksie.
Odsiewanie użytkowników systemu od zwykłych użytkowników
W oczach Linuksa nie ma różnicy między użytkownikiem systemu a człowiekiem. Za każdym razem, gdy instalujesz system operacyjny, tworzy on pewną liczbę użytkowników systemu. Inni użytkownicy systemu są stworzeni dla różnych pakietów, takich jak oprogramowanie WWW lub usługi pocztowe.
Jak więc wymienić tylko zwykłych, ludzkich użytkowników systemu Linux? Kluczem jest tutaj zrozumienie, że kiedy tworzysz zwykłego użytkownika, jego UID jest przypisywany w określonym zakresie liczb. Sprawdzając /etc/login.defs pliku, możemy określić zakres wartości UID dostępnych dla zwykłych kont użytkowników.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
Na podstawie wyników wiem, że normalni użytkownicy powinni mieć UID między 1000 a 60000. Z tego mogę skonstruować getent zapytanie, które wyświetli tylko zwykłych użytkowników.
hasło getent {1000..60000}
Miej na uwadze, getent będzie wyglądał na zawieszone nawet po wyświetleniu danych wyjściowych. Możesz nacisnąć Ctrl+C aby zakończyć proces, lub poczekaj, aż się zakończy. Wyszukiwanie trwa zwykle mniej niż 15 sekund hasło Baza danych.
Bardziej ogólna wersja tego polecenia uwzględnia różne UID_MIN oraz UID_MAX wartości, których mogą używać różne serwery.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
W tym poleceniu wykorzystujemy zdolność Linuksa do robienia wielu rzeczy naraz. ten awk polecenia zdobądź UID_MIN oraz UID_MAX wartości, a następnie użyj ich w ramach getent Komenda.
Teraz powiedzmy, że wszystko, czego chcemy, to nazwy użytkowników. Po raz kolejny przesyłamy nasze wyjście przez skaleczenie polecenie, takie jak:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | wyciąć -d: -f1.
Wykonanie tego polecenia może zająć od 10 do 15 sekund, więc bądź cierpliwy.
Efektywne zarządzanie użytkownikami Linuksa
Ważne jest, aby śledzić, jakie konta użytkowników istnieją w systemie Linux. Gdy wiesz, że pracownik odszedł, szybko usuwaj jego konto użytkownika. Okresowa lista użytkowników Linuksa pomoże upewnić się, że złapiesz wszystkie konta, które mogły utknąć w pobliżu.
Jednocześnie pamiętaj, aby być na bieżąco polityka bezpieczeństwa haseł i zachęć użytkowników do zmienić ich hasła regularnie.