Potrzebuję polecenia, aby wyświetlić listę wszystkich użytkowników terminalu. I jak dodawać, usuwać, modyfikować użytkowników z terminala.
Może to pomóc w łatwym administrowaniu kontami przez terminal.
awk -F: '{ print $1 }' /etc/passwd
Potrzebuję polecenia, aby wyświetlić listę wszystkich użytkowników terminalu. I jak dodawać, usuwać, modyfikować użytkowników z terminala.
Może to pomóc w łatwym administrowaniu kontami przez terminal.
awk -F: '{ print $1 }' /etc/passwd
Odpowiedzi:
Aby wyświetlić listę wszystkich lokalnych użytkowników, możesz użyć:
cut -d: -f1 /etc/passwd
Aby wyświetlić listę wszystkich użytkowników zdolnych do uwierzytelnienia (w pewien sposób), w tym nielokalnych, zobacz tę odpowiedź .
Niektóre bardziej przydatne polecenia zarządzania użytkownikami (również ograniczone do użytkowników lokalnych ):
Aby dodać nowego użytkownika, możesz użyć:
sudo adduser new_username
lub:
sudo useradd new_username
Zobacz także: Jaka jest różnica między adduser a useradd?
Aby usunąć / usunąć użytkownika, najpierw możesz użyć:
sudo userdel username
Następnie możesz usunąć katalog domowy usuniętego konta użytkownika:
sudo rm -r / home / nazwa użytkownika
Należy ostrożnie używać powyższego polecenia!
Aby zmodyfikować nazwę użytkownika:
usermod -l new_username old_username
Aby zmienić hasło użytkownika:
sudo passwd username
Aby zmienić powłokę dla użytkownika:
sudo chsh username
Aby zmienić dane użytkownika (na przykład prawdziwe imię):
sudo chfn username
Aby dodać użytkownika do sudo
grupy:
adduser username sudo
lub
usermod -aG sudo username
I, oczywiście, patrz również: man adduser
, man useradd
, man userdel
... i tak dalej.
sudo chfn <username>
które zmiany danych użytkownika (na przykład prawdziwe nazwisko). Próbowałem dodać to jako komentarz, ale dostałem błąd, mówiąc mi, że muszę mieć reputację +50, aby to zrobić.
Wystarczy nacisnąć Ctrl+ Alt+ Tna klawiaturze, aby otworzyć Terminal. Kiedy się otworzy, uruchom poniższe polecenia:
cat /etc/passwd
LUB
less /etc/passwd
more /etc/passwd
Możesz także użyć awk: awk
awk -F':' '{ print $1}' /etc/passwd
adduser
zamiast tego z wiersza poleceń useradd
należy ograniczyć się do skryptów, w których autor naprawdę wie, co robi.
Najłatwiejszym sposobem na uzyskanie tego rodzaju informacji jest getent
- patrz instrukcja dla getent
polecenia . Chociaż polecenie to daje takie same wyniki, jak cat /etc/passwd
warto pamiętać, ponieważ daje listę kilku elementów w systemie operacyjnym.
Aby uzyskać listę wszystkich wpisywanych użytkowników (jako użytkowników wymienionych na liście /etc/passwd
)
getent passwd
Aby dodać użytkownika newuser do systemu, wpisz
sudo adduser newuser
aby utworzyć użytkownika, który zastosuje wszystkie ustawienia domyślne.
Bonus: dodanie dowolnego użytkownika (na przykład anyuser ) do grupy (na przykład CD-ROM ) typ
sudo adduser anyuser cdrom
Usuwasz użytkownika (na przykład przestarzałego ) za pomocą
sudo deluser obsolete
Jeśli chcesz również usunąć jego katalog domowy / maile, wpisz
sudo deluser --remove-home obsolete
I
sudo deluser --remove-all-files obsolete
usunie użytkownika i wszystkie pliki należące do tego użytkownika w całym systemie.
getent passwd
ponieważ jest właściwym poleceniem
Możesz także użyć compgen
wbudowanego GNU bash :
compgen -u
Wyświetla listę wszystkich użytkowników.
Powinno to uzyskać w większości normalnych sytuacji wszystkich normalnych użytkowników (niesystemowych, nie dziwnych itp.):
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
Działa to przez:
/etc/passwd
:
jako separatoraWynika to z faktu, że w wielu systemach Linux nazwy użytkowników powyżej 1000 są zarezerwowane dla nieuprzywilejowanych (można by powiedzieć, zwykłych) użytkowników. Kilka informacji na ten temat tutaj :
Identyfikator użytkownika (UID) to unikalna dodatnia liczba całkowita przypisywana przez system operacyjny podobny do systemu Unix każdemu użytkownikowi. Każdy użytkownik jest identyfikowany w systemie za pomocą identyfikatora UID, a nazwy użytkowników są zwykle używane tylko jako interfejs dla ludzi.
Identyfikatory UID są przechowywane wraz z odpowiadającymi im nazwami użytkowników i innymi informacjami specyficznymi dla użytkownika w pliku / etc / passwd ...
Trzecie pole zawiera identyfikator UID, a czwarte pole zawiera identyfikator grupy (GID), który domyślnie jest równy UID dla wszystkich zwykłych użytkowników.
W jądrach Linuksa 2.4 i nowszych UID są 32-bitowymi liczbami całkowitymi bez znaku, które mogą reprezentować wartości od zera do 4 294 967 296. Jednak zaleca się stosowanie wartości do 65 534 w celu zachowania zgodności z systemami używającymi starszych jąder lub systemów plików, które mogą obsługiwać tylko 16-bitowe identyfikatory UID.
Identyfikator UID 0 ma szczególną rolę: zawsze jest to konto root (tj. Wszechmocny użytkownik administracyjny). Chociaż nazwę użytkownika można zmienić na tym koncie i można utworzyć dodatkowe konta z tym samym UID, żadna akcja nie jest mądra z punktu widzenia bezpieczeństwa.
UID 65534 jest zwykle zarezerwowany dla nikogo, użytkownika bez uprawnień systemowych, w przeciwieństwie do zwykłego użytkownika (tj. Nieuprzywilejowanego). Ten identyfikator UID jest często używany dla osób uzyskujących dostęp do systemu zdalnie przez FTP (protokół przesyłania plików) lub HTTP (protokół przesyłania hipertekstu).
Identyfikatory UID od 1 do 99 są tradycyjnie zarezerwowane dla specjalnych użytkowników systemu (czasami nazywanych pseudo-użytkownikami), takich jak koło, demon, lp, operator, wiadomości, poczta itp. Ci użytkownicy są administratorami, którzy nie potrzebują całkowitych uprawnień roota, ale wykonują niektóre zadania administracyjne i dlatego potrzebują więcej uprawnień niż te przyznawane zwykłym użytkownikom.
Niektóre dystrybucje Linuksa (tj. Wersje) rozpoczynają identyfikatory UID dla nieuprzywilejowanych użytkowników od 100. Inne, takie jak Red Hat, zaczynają od 500, a jeszcze inne, takie jak Debian, zaczynają od 1000. Z powodu różnic między dystrybucjami, instrukcja interwencja może być konieczna, jeśli w organizacji jest używana wiele dystrybucji.
Wygodne może być również zarezerwowanie bloku identyfikatorów UID dla użytkowników lokalnych, np. Od 1000 do 9999, oraz innego bloku dla użytkowników zdalnych (tj. Użytkowników w innym miejscu w sieci), na przykład od 10000 do 65534. Ważne jest, aby zdecydować na schemacie i stosuj się do niego.
Jedną z zalet tej praktyki rezerwowania bloków liczb dla określonych typów użytkowników jest to, że wygodniej jest przeszukiwać dzienniki systemowe pod kątem podejrzanej aktywności użytkownika.
Wbrew powszechnemu przekonaniu nie jest konieczne, aby każdy wpis w polu UID był unikalny. Jednak nieunikalne identyfikatory UID mogą powodować problemy z bezpieczeństwem, dlatego identyfikatory UID powinny być unikalne w całej organizacji. Podobnie należy unikać recyklingu identyfikatorów UID od byłych użytkowników tak długo, jak to możliwe.
getent
zamiast czytać prosto /etc/passwd
i wyszukiwać UID_MIN
/ UID_MAX
zamiast kodować wartości:getent passwd | awk -F: "{if (\$3 >= $(awk '/^UID_MIN/ {print $2}' /etc/login.defs) && \$3 <= $(awk '/^UID_MAX/ {print $2}' /etc/login.defs)) print \$1}"
lista wszystkich użytkowników, którzy mogą się zalogować (brak użytkowników systemu, takich jak: bin, deamon, mail, sys itp.)
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
dodaj nowego użytkownika
sudo adduser new_username
lub
sudo useradd new_username
usuń / usuń nazwę użytkownika
sudo userdel username
Jeśli chcesz usunąć katalog domowy (domyślnie katalog / home / nazwa użytkownika)
sudo deluser --remove-home username
lub
sudo rm -r /path/to/user_home_dir
Jeśli chcesz usunąć wszystkie pliki z systemu od tego użytkownika (nie tylko katalog domowy)
sudo deluser --remove-all-files
adduser
i useradd
. Dodaj także sudo
-prefiks do pierwszego polecenia. Plik cienia hasła można odczytać tylko jako root.
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
pokazał mi wszystkich użytkowników, w tym bin, demona itp., i rzucił to ostrzeżenie: sekwencja ucieczki \$' treated as plain
$ 'Znalazłem ten post stackoverflow.com/a/25867768/847954 i dodałem jeszcze jeden odwrotny ukośnik i działało dobrze:awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow
Ok, oto sztuczka, która pomoże ci to posortować. Terminal ma funkcję autouzupełniania, jeśli wpiszesz użytkownika i naciśniesz klawisz Tab dwa razy, wyświetli wszystkie polecenia istniejące dla użytkownika jako pierwsze 4 znaki.
user (tab tab)
daje mi jak to możliwe opcje useradd userdel usermod users users-admin,
jeśli chcesz dowiedzieć się więcej o poleceniu google it lub wpisać man man useradd daje useradd - utwórz nowego użytkownika lub zaktualizuj domyślne informacje o nowym użytkowniku ... ...
aby wymienić użytkowników, powinieneś iść z tym, co powiedział Mitch.
Nadzieja, która pomaga mi uwielbiać uzupełnianie kart w bash, ratuje mnie przed zapamiętywaniem rzeczy.
Aby znaleźć użytkowników, którzy mają katalogi domowe w folderze / home na komputerze, uruchom następujące polecenia
cd /home
ls
Następnie możesz zobaczyć użytkowników, którzy mają uprawnienia do zalogowania się na serwerze. Jeśli chcemy przejrzeć pliki użytkowników, musisz być użytkownikiem root.
/home
. Chociaż Ubuntu domyślnie umieszcza tam katalogi użytkowników, nie jest to w żaden sposób obowiązkowe.
ls /home
może również zawierać katalogi użytkowników usuniętych.
sed 's/:.*//' /etc/passwd