Jak wyświetlić listę użytkowników w systemie Linux?

Opublikowany: 2022-06-25
Laptop z systemem Linux wyświetlający monit bash
fatmawati achmad zaenuri/Shutterstock.com

Linux to system operacyjny dla wielu użytkowników, więc tworzenie wielu kont użytkowników jest łatwe. Z biegiem czasu łatwo stracić orientację, które konta są wymagane. Lista kont użytkowników ułatwia zarządzanie nimi.

Konta użytkowników

Postępy technologiczne często niosą ze sobą nowe problemy. Gdy tylko komputery były w stanie obsługiwać wielu użytkowników, pojawiła się potrzeba oddzielenia i oddzielenia pracy każdej osoby od wszystkich innych. Doprowadziło to do koncepcji kont użytkowników. Każdy użytkownik posiada nazwany identyfikator i hasło. To są dane uwierzytelniające, które pozwalają im zalogować się na swoje konto. Ich pliki są przechowywane w obszarze prywatnym dla każdego użytkownika.

W obciążonym systemie łatwo stracić z oczu, które konta utworzyłeś, a które nie są już potrzebne. Z punktu widzenia bezpieczeństwa złą praktyką jest utrzymywanie kont użytkowników, które nie muszą być już konfigurowane i dostępne na komputerze. Powinieneś usunąć tych użytkowników.

Nawet jeśli nie masz innych osób korzystających z Twojego komputera, być może utworzyłeś kilka kont tylko po to, aby nauczyć się, jak to zrobić lub nauczyć się i przećwiczyć procesy administracyjne.

Jak usunąć użytkownika w systemie Linux (i usunąć każdy ślad)
POWIĄZANE Jak usunąć użytkownika w systemie Linux (i usunąć każdy ślad)

Pierwszym krokiem jest wyświetlenie listy kont użytkowników skonfigurowanych na Twoim komputerze. Dzięki temu możesz je przejrzeć i dokonać wezwania do osądu, które można usunąć. Istnieje kilka metod wyświetlania listy użytkowników. Bez względu na to, jakiej dystrybucji używasz, te techniki powinny działać bez konieczności instalowania jakichkolwiek aplikacji lub narzędzi.

Lista użytkowników za pomocą polecenia kot

Lista skonfigurowanych użytkowników wraz z informacjami o każdym użytkowniku jest przechowywana w pliku „/etc/passwd”. Jest to plik tekstowy, który zwykli użytkownicy mogą wyświetlić w oknie terminala. Nie musisz używać sudo , aby zajrzeć do pliku „/etc/passwd”.

Jak zmienić dane użytkownika za pomocą chfn i usermod w systemie Linux?
POWIĄZANE Jak zmienić dane użytkownika za pomocą chfn i usermod w systemie Linux

Możemy użyć polecenia cat , aby wysłać zawartość pliku „/etc/passwd” do okna terminala. Spowoduje to wyświetlenie całej zawartości pliku. Oznacza to, że zobaczysz także wpisy dla kont użytkowników, których właścicielami są procesy i system, a nie ludzie.

 kot /etc/passwd 

Wysyłanie zawartości pliku /etc/passwd do okna terminala za pomocą cat

Dla każdego konta użytkownika raportowany jest wiersz gęstych informacji.

Zawartość pliku /etc/passwd

Informacje dla konta użytkownika o nazwie „dave” zawierają te informacje, z dwukropkami „ : ” między nimi.

  • dave : nazwa konta użytkownika. Zwykle imię i nazwisko osoby, która jest właścicielem konta.
  • x : Kiedyś zawierało to hasło do konta. Obecnie hasła są przechowywane w pliku „/etc/shadow”. „x” oznacza, że ​​hasło znajduje się w tym pliku.
  • 1000 : identyfikator użytkownika dla tego konta. Wszystkie konta użytkowników mają unikalny numeryczny identyfikator. Zwykłe konta użytkowników zwykle zaczynają się od 1000, a każde nowe konto przyjmuje kolejny bezpłatny identyfikator, taki jak 1001, 1002 i tak dalej.
  • 1000 : Identyfikator grupy domyślnej grupy, do której należy użytkownik. W normalnych okolicznościach grupa domyślna ma taką samą wartość jak identyfikator użytkownika.
  • dave ,,, : Zbiór opcjonalnych dodatkowych informacji o użytkowniku. To pole zawiera dane z przecinkami „ , ” między nimi. Mogą przechowywać takie rzeczy, jak imię i nazwisko użytkownika, numer jego biura i numer telefonu. Wpis dotyczący konta użytkownika „mary” pokazuje, że jej pełne imię to Mary Quinn.
  • /home/dave : ścieżka do folderu domowego użytkownika.
  • /bin/bash : Domyślna powłoka dla tego użytkownika.

Jeśli prześlemy dane wyjściowe z tego polecenia przez narzędzie wc i użyjemy opcji -l (linie), możemy policzyć wiersze w pliku. To da nam liczbę kont skonfigurowanych na tym komputerze.

 kot /etc/passwd | wc-l 

Zliczanie kont w pliku /etc/passwd

Liczba ta obejmuje konta systemowe i użytkowników utworzonych przez aplikacje. Na tym komputerze skonfigurowanych jest około 400 zwykłych użytkowników. Twój wynik prawdopodobnie będzie znacznie mniejszy.

Przy tak wielu kontach wygodniej jest używać less do przeglądania pliku „/etc/passwd”.

 mniej /etc/passwd 

Otwarcie pliku /etc/passwd w less

Użycie less pozwala również na wyszukiwanie w danych wyjściowych, jeśli chcesz poszukać konkretnego konta użytkownika.

Wyszukiwanie konta mary w pliku /etc/passwd, w less

Polecenie awk

Używając polecenia awk możemy wyświetlić tylko nazwę użytkownika. Może to być przydatne, gdy piszesz skrypt, który musi coś zrobić z wieloma kontami użytkowników. Wypisanie nazw kont użytkowników i przekierowanie ich do pliku tekstowego może być świetną oszczędnością czasu. Wszystko, co musisz wtedy zrobić, to skopiować i wkleić resztę polecenia do każdej linii.

Jak korzystać z polecenia awk w systemie Linux
POWIĄZANE Jak używać polecenia awk w systemie Linux

Powiemy awk, aby używał dwukropka „:” jako separatora pól i wypisał pierwsze pole. Użyjemy opcji -F (separator pól).

 awk -F: '{print $1}' /etc/passwd 

Polecenie awk do wybierania tylko nazw użytkowników z /etc/passwd

Nazwy kont użytkowników są zapisywane w oknie terminala bez żadnych innych informacji o koncie.

Nazwy kont użytkowników wyświetlane w oknie terminala

Wytnij polecenie

To samo możemy osiągnąć za pomocą polecenia cut . Musimy użyć opcji -d (ogranicznik) i poprosić go o wybranie tylko pierwszego pola, używając opcji -f (pola).

 cięcie -d: -f1 

Używanie polecenia cut do wyświetlania tylko nazw użytkowników z pliku /etc/passwd

Zawiera listę wszystkich kont użytkowników, w tym kont systemowych i innych kont innych niż ludzie.

Komenda Compgen

compgen można użyć z opcją -u (użytkownik), aby wyświetlić listę kont użytkowników. Prześlemy dane wyjściowe przez polecenie column , aby wyświetlić konta użytkowników w kolumnach, zamiast jednej długiej listy z pojedynczą nazwą użytkownika w wierszu.

 compgen -u | kolumna 

Używanie poleceń compgen i column do wylistowania nazw kont użytkowników z pliku /etc/passwd w kolumnach

Ponownie, pierwsze wymienione konta użytkowników należą do procesów, a nie do ludzi.

UID MIN i UID MAX

Konta użytkowników otrzymują numeryczny identyfikator, który widzieliśmy wcześniej. Zwykle konta zwykłych użytkowników zaczynają się od 1000, a konta systemowe, niebędące ludźmi, zaczynają się od 0. Identyfikator konta root to 0.

Jeśli możemy zweryfikować najniższy i najwyższy możliwy identyfikator użytkownika, możemy użyć tych informacji do wybrania kont użytkowników, które znajdują się między tymi dwiema wartościami. To pozwoli nam wybrać tylko konta użytkowników należące do prawdziwych osób.

Linux śledzi te dwie wartości za pomocą parametrów konfiguracyjnych o nazwach UID_MIN i UID_MAX . Są one przechowywane w pliku „/etc/login.defs”. Możemy łatwo zobaczyć te wartości za pomocą grep .

Użyjemy opcji -E (rozszerzone wyrażenie regularne). Nasz ciąg wyszukiwania szuka wierszy zaczynających się od „UID_MIN” lub „UID_MAX” w pliku „/etc/login.defs”. Karetka „ ^ ” reprezentuje początek linii.

 grep -E '^UID_MIN|^UID_MAX' /etc/login.defs 

Zakres identyfikatorów użytkowników na tym komputerze wynosi od 1000 do 60 000.

POWIĄZANE: Jak używać wyrażeń regularnych (wyrażeń regularnych) w systemie Linux

Getent Command

Polecenie getent odczytuje informacje z systemowych baz danych. Możemy powiedzieć mu, aby wyświetlał wpisy w pliku „/etc/passwd”, używając „passwd” jako parametru.

 Getent passwd 

Użycie getent do zrzucenia pliku /etc/passwd do okna terminala

Daje nam to taki sam odczyt, jaki możemy uzyskać za pomocą cat . Ale gdzie getent błyszczy, to akceptowanie wartości znanych jako „klucze”. Klucz dyktuje, jakie informacje są getent . Jeśli chcemy zobaczyć wpis dla pojedynczego użytkownika, możemy podać nazwę jego konta użytkownika w wierszu poleceń.

 Getent passwd Sarah

Zauważ, że w nazwie konta użytkownika rozróżniana jest wielkość liter.

 getent passwd sarah 

Szukasz jednego konta użytkownika w getent

Możemy również przekazać górny i dolny limit identyfikatorów kont użytkowników, które chcemy zobaczyć. Aby zobaczyć absolutnie wszystkie konta zwykłych użytkowników, możemy użyć wartości z UID_MIN i UID_MAX .

 hasło getent {1000..60000} 

Korzystanie z górnego i dolnego identyfikatora konta w getent

To zajmuje trochę czasu. W końcu wrócisz do wiersza polecenia.

Zawartość pliku /etc/passwd wysłanego do okna terminala przez getent

Powodem długiego czasu wykonania jest to, że getent próbuje znaleźć dopasowania dla wszystkich wartości kont użytkowników aż do 60000.

Zobaczmy, jaki jest najwyższy identyfikator konta użytkownika. Użyjemy polecenia cut , ale tym razem poprosimy o pole trzecie, pole ID użytkownika. Prześlemy dane wyjściowe przez sort i użyjemy opcji -g (ogólne sortowanie numeryczne).

 cut -d: -f3 /etc/passwd | sortuj -g 

Polecenie do potoku danych wyjściowych z cut do polecenia sort

Najwyższa wartość identyfikatora konta użytkownika należącego do człowieka to 1401.

Posortowana lista identyfikatorów kont użytkowników

Identyfikator użytkownika 65534 jest przypisany do koncepcji systemu „nikt”.

 hasło getent {65534..65534} 

Użytkownik systemu nikt, z ID 65534

Wiemy więc, że zamiast używać wartości UID_MAX równej 60000, na tym komputerze możemy użyć bardziej realistycznej wartości, takiej jak 1500. To nieźle przyspieszy sprawę. Prześlemy również dane wyjściowe przez cut , aby wyodrębnić tylko nazwy kont użytkowników.

getent passwd {1000..1500} | wyciąć -d: -f1

Dane wyjściowe getent są przesyłane przez cięcie, aby wyświetlić listę nazw kont użytkowników

Użytkownicy są wymienieni i natychmiast wracamy do wiersza poleceń.

Zamiast przesyłać dane wyjściowe przez cut , przepuśćmy wynik przez wc i ponownie policzmy wiersze. To da nam liczbę „prawdziwych” kont użytkowników.

 getent passwd {1000..1500} | wc-l 

Zliczanie zwykłych kont użytkowników za pomocą getent i wc

Widzimy teraz, że na tym komputerze jest ostatecznie 400 skonfigurowanych, należących do ludzi, kont użytkowników.

Moc i prostota

Jedna z tych technik z pewnością zaspokoi Twoje potrzeby, gdy musisz przejrzeć konta użytkowników na komputerze z systemem Linux. Te polecenia powinny być obecne we wszystkich dystrybucjach i żadna z nich nie wymaga dostępu sudo , więc wszystkie są dostępne dla każdego użytkownika.

POWIĄZANE: Jak kontrolować dostęp sudo w systemie Linux