w tym poście dowiesz się o listowaniu użytkowników w Linuksie. Poza tym poznasz inne sztuczki dotyczące cech użytkowników Linuksa.
w Linuksie istnieją dwa typy użytkowników, użytkowników systemowych, którzy są domyślnie tworzeni w systemie. Z drugiej strony są zwykli użytkownicy, którzy są tworzeni przez administratorów systemu i mogą zalogować się do systemu i z niego korzystać.
spis treści
jaki plik zawiera listę Użytkowników Linuksa?,
zanim zaczniemy wymieniać użytkowników, musimy wiedzieć, gdzie ci użytkownicy zapisani na Linuksie?
użytkownicy są przechowywane w pliku tekstowym w systemie o nazwie plik passwd. Ten plik znajduje się w katalogu / etc.
plik znajduje się na następującej ścieżce:
$ /etc/passwd
w tym Pliku znajdziesz wszystkie informacje o użytkownikach systemu.
Lista wszystkich użytkowników
Lista użytkowników jest pierwszym krokiem do zarządzania nimi. W ten sposób dowiemy się, ilu ich jest i kim są. W Linuksie prawie wszystko można zrobić na różne sposoby i nie jest to wyjątkiem.,
aby wyświetlić listę wszystkich użytkowników, możesz użyć polecenia cat:
$ cat /etc/passwd
Jak widać na obrazku, są tam wszystkie informacje o użytkownikach.
1-w pierwszym polu zobaczysz nazwę użytkownika.
2-drugie pole (znak x) jest reprezentacją zaszyfrowanego hasła. Zaszyfrowane hasło jest przechowywane w pliku/etc / shadow.
3-UID lub ID użytkownika.
4-następne pole odnosi się do podstawowej grupy użytkownika.
5-następnie wyświetla informacje o ID użytkownika, takie jak adres, e-mail itp.,
6-Po tym wyświetli się katalog domowy użytkownika.
7-ostatnim polem jest powłoka używana przez tego użytkownika.
jednak, chociaż informacje są bardzo przydatne, jeśli chcesz wyświetlać tylko nazwy użytkowników w podstawowy sposób, możesz użyć tego polecenia:
$ cut -d: -f1 /etc/passwd
teraz mamy nazwy tylko przez wydrukowanie pierwszego pola pliku.
lista & Sortuj użytkowników według nazwy
powyższe polecenie służy do wyświetlania użytkowników na Linuksie. Ale co z listowaniem użytkowników w porządku alfabetycznym?,
aby to zrobić, użyjemy poprzedniego polecenia, ale dodamy polecenie sort.
tak więc, polecenie będzie wyglądać następująco:
$ cut -d: -f1 /etc/passwd | sort
jak widać na obrazku, użytkownicy są wyświetlane posortowane.
Lista użytkowników bez hasła
ważne jest, aby znać użytkowników, którzy nie mają hasła i podjąć odpowiednie działania. Aby wyświetlić listę użytkowników, którzy nie mają hasła, wystarczy użyć następującego polecenia:
$ sudo getent shadow | grep -Po '^*(?=:.?:)'
używane wyrażenia regularne wyświetli listę wszystkich użytkowników bez hasła.,
Lista użytkowników według użycia dysku
Jeśli masz duży katalog i chcesz wiedzieć, który użytkownik go zalewa, możesz użyć polecenia du, aby uzyskać użycie dysku.
dzięki temu możesz wykryć, którzy z tych użytkowników nadużywają miejsca na dysku.
w tym celu wystarczy użyć następującego polecenia:
$ sudo du -smc /home/* | sort -n
w ten sposób będziesz miał użytkowników uporządkowanych według użycia dysku dla katalogu /home.
użyliśmy polecenia-n do sortowania, aby posortować dane wyjściowe według liczb.,
lista aktualnie zalogowanych użytkowników
aby wyświetlić listę aktualnie zalogowanych użytkowników, mamy na to kilka sposobów. Pierwszą metodą możemy użyć polecenia users:
$ users
wyświetli listę użytkowników z otwartymi sesjami w systemie.
ale ta informacja jest trochę podstawowa; jednak mamy inne polecenie, które podaje więcej szczegółów. Polecenie jest po prostu w.,
$ w
za pomocą tego polecenia możemy uzyskać więcej informacji, takich jak dokładny czas rozpoczęcia sesji i dostępną przez niego sesję terminala.
W końcu jest komenda o nazwie who. Jest on dostępny dla całej rodziny Unix. Więc można go używać na innych systemach, takich jak FreeBSD.
$ who
za pomocą polecenia who mamy również informacje o aktualnie zalogowanych użytkownikach. Oczywiście możemy dodać opcję-a i pokazać wszystkie szczegóły.,
$ who -a
w ten sposób wiesz wszystko o zalogowanych użytkownikach.
Linuksowa Lista użytkowników, którzy ostatnio zalogowali się do systemu
widzieliśmy jak uzyskać aktualnie zalogowanych użytkowników, co z listą historii logowania użytkowników?,
możesz użyć ostatniego polecenia, aby uzyskać więcej informacji o zalogowaniu, które miało miejsce:
$ last
lub loginy konkretnego użytkownika
$ last
na przykład:
$ last angelo
są to działania logowania użytkownika, kiedy zostały uruchomione i jak długo trwało.
wyświetlanie loginów użytkowników w określonej dacie lub godzinie
a co z wyświetlaniem loginów użytkowników w określonej dacie lub godzinie?, Aby to osiągnąć, używamy ostatniego polecenia, ale z parametrem-t:
$ last -t YYMMDDHHMMSS
na przykład:
$ last -t 20190926110509
i teraz wystarczy wybrać dokładną datę & time to list who logged at the time.
Lista wszystkich użytkowników w grupie
w Linuksie są dwa sposoby na listę członków grupy, najprostszym i najbardziej bezpośrednim sposobem jest pobranie użytkowników z pliku /etc/group w następujący sposób:
$ cat /etc/group | grep likegeeks
To polecenie wyświetli listę użytkowników w grupie likegeeks.,
innym sposobem jest użycie poleceń takich jak polecenie members w dystrybucjach opartych na Debianie. Jednak nie jest instalowany domyślnie w dystrybucjach Linuksa.,
aby zainstalować go w Ubuntu / Linux Mint 19, wystarczy użyć APT:
$ sudo apt install members
lub w przypadku CentOS:
$ sudo dnf install members
Po zainstalowaniu możesz uruchomić polecenie, a następnie nazwę grupy, do której chcesz wyświetlić listę użytkowników:
$ members
na przykład:
$ members avahi
w ten sposób możesz wyświetlić listę użytkowników dla grupy w dystrybucji opartej na Debianie. A co z dystrybucją opartą na Redhacie, taką jak CentOS?,
Możesz użyć następującego polecenia:
$ getent group likegeeks
Lista użytkowników z UID
w systemach Unix każdy użytkownik ma identyfikator użytkownika lub ID. Służy do wewnętrznego zarządzania kontami i administrowania nimi w systemie operacyjnym.
ogólnie UID od 0 do 1000 są przeznaczone dla użytkowników systemu. A następnie dla stałych użytkowników. Zawsze w systemach Unix, UID zero należy do użytkowników root (możesz mieć więcej niż jednego użytkownika z UID zerowym).
więc teraz, będziemy wymieniać użytkowników z ich odpowiedni UID za pomocą Awk.,
polecenie wykonujące zadanie jest następujące:
$ awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd
jak widać, każdy użytkownik ma swój UID.
Lista użytkowników root
w systemie Uniksopodobnym, takim jak Linux, zwykle jest tylko jeden użytkownik root. Jeśli jest ich wiele, jak je wymienić?
aby to zrobić, możemy użyć tego polecenia:
$ grep 'x:0:' /etc/passwd
tutaj filtrujemy plik, aby uzyskać użytkowników z UID zerowym (użytkownicy root).,
inny sposób sprawdzania pliku /etc/group:
$ grep root /etc/group
tutaj otrzymujemy użytkowników w katalogu głównym grupy z pliku /etc/group.
Możesz również sprawdzić, czy jakikolwiek użytkownik może wykonywać polecenia jako root, sprawdzając plik /etc/sudoers:
$ cat /etc/sudoers
uzyskaj całkowitą liczbę użytkowników
aby uzyskać całkowitą liczbę użytkowników w Linuksie, możesz policzyć linie w pliku /etc/passwd za pomocą polecenia wc w następujący sposób:
$ cut -d: -f1 /etc/passwd | wc -l
Super! 43 użytkowników., Ale obejmuje to system i stałych użytkowników. A co z uzyskaniem liczby tylko stałych użytkowników?
Easy! Ponieważ wiemy z góry, że zwykli użytkownicy mają UID 1000 lub większy, możemy użyć Awk, aby je uzyskać:
$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Cool!
Lista użytkowników sudo
systemy linuksowe mają narzędzie o nazwie sudo, które pozwala na wykonywanie poleceń tak, jakbyś był innym użytkownikiem, który zwykle jest użytkownikiem root.
należy obchodzić się z tym ostrożnie w profesjonalnym środowisku.,
bardzo ważne jest również, aby wiedzieć, którzy użytkownicy mogą uruchamiać polecenie sudo. W tym celu wystarczy wymienić użytkowników należących do grupy sudo.
$ members sudo
użytkownicy tej grupy mogą wykonywać polecenia jako super użytkownicy.
Lista użytkowników, którzy mają dostęp SSH
SSH umożliwia użytkownikom dostęp do komputerów zdalnych przez sieć. Jest dość bezpieczny i narodził się jako zamiennik Telnet.
domyślnie wszyscy zwykli użytkownicy mogą się logować i używać SSH., Jeśli chcesz to ograniczyć, możesz użyć pliku konfiguracyjnego SSH (/etc/ssh/ssh_config) i dodać następującą dyrektywę:
AllowUsers user1 user2 user3
ponadto możesz zezwolić na grupy zamiast zezwalać użytkownikom tylko za pomocą dyrektywy AllowGroups:
AllowGroups group1 group2 group3
dyrektywy te określają, kto może uzyskać dostęp do usługi. Nie zapomnij ponownie uruchomić usługi SSH.
Lista użytkowników, którzy mają uprawnienia do pliku lub katalogu
możemy dać więcej niż jednemu użytkownikowi uprawnienia do dostępu lub modyfikowania plików& katalogów na dwa sposoby.,
pierwsza metoda polega na dodaniu użytkowników do grupy pliku lub katalogu.
w ten sposób możemy wymienić członków grupy za pomocą narzędzia members, jak pokazano powyżej.
ok, ale co jeśli chcemy, aby ten użytkownik miał dostęp tylko do tego konkretnego pliku (nie do wszystkich uprawnień grupy)?
tutaj możemy ustawić ACL dla tego pliku za pomocą polecenia setfacl w następujący sposób:
$ setfacl -m u:newuser:rwx myfile
tutaj dajemy użytkownikowi o nazwie newser uprawnienia do pliku o nazwie myfile uprawnienia do odczytu& write& execute.,
teraz plik może być dostępny lub modyfikowany przez właściciela i Użytkownika o nazwie newuser. Jak je wymienić?
możemy wypisać ich za pomocą polecenia getfacl w następujący sposób:
$ getfacl myfile
To polecenie wyświetli listę wszystkich użytkowników, którzy mają uprawnienia do pliku z odpowiednimi uprawnieniami.
Lista zablokowanych (wyłączonych) użytkowników
w Linuksie, jako środek bezpieczeństwa, możemy zablokować użytkowników. To jako środek ostrożności, jeśli podejrzewa się, że użytkownik robi rzeczy źle, a ty nie chcesz całkowicie usunąć użytkownika i po prostu zablokować go w celu zbadania.,
aby zablokować użytkownika, możesz użyć następującego polecenia:
$ usermod -L myuser
teraz użytkownik o nazwie myuser nie będzie już mógł zalogować się lub korzystać z systemu.
aby wyświetlić listę wszystkich zablokowanych użytkowników Systemu, wystarczy użyć następującego polecenia:
$ cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked
spowoduje to wydrukowanie wszystkich zablokowanych użytkowników, w tym użytkowników systemu. A co z listowaniem tylko zwykłych Użytkowników?
jak widzieliśmy powyżej, używając Awk, możemy uzyskać zablokowane zwykłych Użytkowników w taki sposób:
$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked
bardzo proste!,
Lista użytkowników zdalnych (LDAP)
ok, teraz Można wymienić wszystkich użytkowników systemowych (użytkowników lokalnych), ale co z użytkownikami zdalnymi lub użytkownikami LDAP? Cóż, możemy użyć narzędzia takiego jak ldapsearch, ale czy jest jakiś inny sposób?
na szczęście tak! Możesz wyświetlić listę lokalnych& zdalnych użytkowników za pomocą jednego polecenia o nazwie getent
$ getent passwd
To polecenie wyświetla listę zarówno lokalnych użytkowników systemu, jak i użytkowników LDAP lub NIS lub innych użytkowników sieciowych.
możesz przesyłać wyniki tego polecenia do dowolnego z wyżej wymienionych poleceń w ten sam sposób.,
ponadto polecenie getent może wyświetlać listę kont grupowych w następujący sposób:
$ getent group
Możesz sprawdzić stronę podręcznika polecenia, aby poznać inne bazy danych, w których polecenie może wyszukiwać.
podsumowanie
Lista użytkowników w systemie Linux była fajna! Poza tym nauczyliśmy się kilku wskazówek na temat użytkowników i zarządzania nimi na różne sposoby.
wreszcie ta wiedza pozwoli na lepsze Administrowanie użytkownikami systemu.
mam nadzieję, że tutorial okaże się przydatny. Wracaj.,
założyciel LikeGeeks. Pracuję jako administrator systemu Linux od 2010 roku. Jestem odpowiedzialny za utrzymywanie, zabezpieczanie i rozwiązywanie problemów z serwerami Linux dla wielu klientów na całym świecie. Uwielbiam pisać skrypty powłoki i Pythona, aby zautomatyzować moją pracę.