Frage Ein Befehl zum Auflisten aller Benutzer? Und wie man Benutzer hinzufügt, löscht, ändert?


Ich brauche einen Befehl, um alle Benutzer im Terminal aufzulisten. Und wie man Benutzer vom Terminal hinzufügt, löscht oder ändert.

Das könnte helfen, Ihre Konten einfach per Terminal zu verwalten.


699
2018-01-24 20:23


Ursprung


sed Antwort sed 's/:.*//' /etc/passwd - Avinash Raj
Benutzer auflisten: awk -F: '{ print $1 }' /etc/passwd - saviour123


Antworten:


Um alle aufzulisten lokal Benutzer, die Sie verwenden können:

cut -d: -f1 /etc/passwd

Wenn Sie alle Benutzer auflisten möchten, die authentifiziert werden können (auch nicht lokal), lesen Sie diese Antwort: https://askubuntu.com/a/414561/571941

Einige nützlichere Benutzerverwaltungsbefehle (auch beschränkt auf lokal Benutzer):

Um einen neuen Benutzer hinzuzufügen, können Sie Folgendes verwenden:

sudo adduser Neuer Benutzername

oder:

sudo useradd Neuer Benutzername

Siehe auch: Was ist der Unterschied zwischen adduser und useradd?

Um einen Benutzer zu entfernen / löschen, können Sie zunächst Folgendes verwenden:

sudo userdel Nutzername

Dann möchten Sie vielleicht das Home-Verzeichnis für das gelöschte Benutzerkonto löschen:

sudo rm -r / home /Nutzername

(Bitte verwenden Sie den obigen Befehl mit Vorsicht!)

So ändern Sie den Benutzernamen eines Benutzers:

usermod -l Neuer Benutzername alter Benutzername

So ändern Sie das Passwort für einen Benutzer:

sudo passwd Nutzername

So ändern Sie die Shell für einen Benutzer:

sudo chsh Nutzername

So ändern Sie die Details für einen Benutzer (z. B. echter Name):

sudo chfn Nutzername

Und natürlich, siehe auch: man adduser, man useradd, man userdel... und so weiter.


937
2018-01-24 19:28



Radu vergaß zu erwähnen sudo chfn <username> welches die Benutzerdetails ändert (zB echter Name). Ich habe versucht, dies als einen Kommentar hinzuzufügen, aber ich habe Fehler, mir zu sagen, dass ich +50 Ruf haben muss, um das zu tun. - Mikaela
Ich denke, es sollte unterstrichen werden, dass die richtige Antwort auf die verknüpfte Frage lautet askubuntu.com/a/381646/16395 --- Ansonsten müssen Sie die GID / UID Ubuntu Richtlinien von Hand berücksichtigen. Die angenommene Antwort ist nicht so klar. - Rmano
sudo userdel DOMAIN \\ johndoe gibt mir den Fehler: "userdel: kann den Eintrag 'DOMAIN \ johndoe' nicht aus / etc / passwd entfernen - Ich habe in / etc / passwd nachgesehen und sie sind nicht mal drin, wahrscheinlich weil es ein" Domain "Konto? - 00fruX
@ 00fruX Ja ... Wenn Sie eine zentralisierte Benutzerdatenbank verwenden, müssen Sie direkt damit umgehen. - Oli♦
+1 für Was ist der Unterschied zwischen adduser und useradd? - sonlexqt


Drücken Sie einfach Strg+Alt+T auf Ihrer Tastatur, um Terminal zu öffnen. Wenn es geöffnet wird, führen Sie die folgenden Befehle aus:

cat /etc/passwd

ODER

less /etc/passwd
more /etc/passwd

Sie können auch awk verwenden:awk

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

73
2018-01-24 19:38



wie man Benutzer durch Befehl hinzufügt? - nux
Sie können verwenden useradd Befehl. - Mitch♦
@nux Ein bisschen spät zur Party, aber von der Kommandozeile aus adduser stattdessen, useradd sollte auf Skripte beschränkt sein, bei denen der Autor wirklich wirklich weiß, was er tut. - flindeberg


Der einfachste Weg, um diese Art von Informationen zu erhalten ist getent - sehen Manpage für die getent Befehl Manpage icon. Während dieser Befehl die gleiche Ausgabe wie gibt cat /etc/passwd Es ist nützlich, sich daran zu erinnern, weil es Ihnen Listen von verschiedenen Elementen im Betriebssystem gibt.

Um eine Liste aller Benutzer zu erhalten, die Sie eingeben (wie Benutzer aufgeführt sind) /etc/passwd)

getent passwd

Um einen Benutzer hinzuzufügen neuer Benutzer zu dem System, das Sie eingeben würden

sudo adduser newuser

um einen Benutzer zu erstellen, auf den alle Standardeinstellungen angewendet wurden.

Bonus: Um einen Benutzer hinzuzufügen (zum Beispiel anyuser) zu einer Gruppe (zum Beispiel CD-ROM) Art

sudo adduser anyuser cdrom

Sie löschen einen Benutzer (z. B. obsolet) mit

sudo deluser obsolete

Wenn Sie auch sein Heimatverzeichnis / seine Mails löschen möchten, tippen Sie

sudo deluser --remove-home obsolete

Und

sudo deluser --remove-all-files obsolete

wird den Benutzer entfernen und alle Dateien, die diesem Benutzer im gesamten System gehören.


52



Es ist nützlich, sich daran zu erinnern, dass getent nicht nur die Ausgabe von Benutzern in / etc / passwd, sondern alle Benutzer in allen konfigurierten userdb-Backends auf einem bestimmten System ausgibt, egal ob es sich um / etc / passwd oder LDAP usw. handelt. - Marcin Kaminski


Sie können verwenden compgen auch eingebaut:

compgen -u

Will listet alle Benutzer auf.


21





Das sollte bekommen, in den meisten normalen Situationen, alle normalen Benutzer (nicht System, nicht seltsam, usw.):

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Dies funktioniert durch:

  • einlesen von /etc/passwd
  • verwenden : als Trennzeichen
  • Wenn das dritte Feld (die Benutzer-ID-Nummer) größer als 1000 und nicht 65534 ist, wird das erste Feld (der Benutzername des Benutzers) gedruckt.

Dies liegt daran, dass auf vielen Linux-Systemen Benutzernamen über 1000 für nichtprivilegierte (man könnte sagen, normale) Benutzer reserviert sind. Einige Infos dazu Hier:

Eine Benutzer-ID (UID) ist eine eindeutige positive ganze Zahl, die von einem Unix-ähnlichen Typ vergeben wird   Betriebssystem für jeden Benutzer. Jeder Benutzer wird für das System identifiziert   durch seine UID, und Benutzernamen werden in der Regel nur als Schnittstelle für verwendet   Menschen.

UIDs werden zusammen mit ihren entsprechenden Benutzernamen und anderem gespeichert   benutzerspezifische Informationen in der Datei / etc / passwd ...

Das dritte Feld enthält die UID und das vierte Feld enthält die   Gruppen-ID (GID), die standardmäßig gleich der UID für alle gewöhnlichen ist   Benutzer.

In den Linux-Kernel 2.4 und höher sind UIDs vorzeichenlose 32-Bit-Ganzzahlen   das kann Werte von Null bis 4,294,967,296 darstellen. Wie auch immer es ist   ratsam, Werte nur bis zu 65.534 zu verwenden, um zu erhalten   Kompatibilität mit Systemen, die ältere Kernel oder Dateisysteme verwenden, die   nur 16-Bit-UIDs aufnehmen.

Die UID von 0 hat eine spezielle Rolle: Es ist immer das root-Konto (d. H.   der allmächtige administrative Benutzer). Obwohl der Benutzername sein kann   geändert für dieses Konto und zusätzliche Konten können mit erstellt werden   die gleiche UID, keine Aktion ist aus Sicherheitsgründen sinnvoll.

Die UID 65534 ist normalerweise für niemanden reserviert, einen Benutzer ohne System   Privilegien, im Gegensatz zu einem gewöhnlichen (d. h. nicht privilegierten) Benutzer.   Diese UID wird häufig für Personen verwendet, die remote auf das System zugreifen   über FTP (File Transfer Protocol) oder HTTP (Hypertext Transfer)   Protokoll).

Die UIDs 1 bis 99 sind traditionell für spezielle Systembenutzer reserviert   (manchmal Pseudo-Benutzer genannt), wie Rad, Daemon, LP, Operator,   Nachrichten, E-Mail usw. Diese Benutzer sind Administratoren, die keine Summe benötigen   Wurzelmächte, die aber einige administrative Aufgaben übernehmen und somit benötigen   mehr Privilegien als die normalen Benutzern.

Einige Linux-Distributionen (d. H. Versionen) beginnen mit UIDs für   nicht privilegierte Benutzer bei 100. Andere, wie Red Hat, beginnen sie bei   500, und noch andere, wie Debian, beginnen sie bei 1000. Wegen der   Unterschiede zwischen den Verteilungen, manuelle Eingriffe können notwendig sein   Wenn mehrere Distributionen in einem Netzwerk in einer Organisation verwendet werden.

Es kann auch praktisch sein, einen Block von UIDs für lokale Benutzer zu reservieren,   B. 1000 bis 9999 und ein weiterer Block für entfernte Benutzer (d. h.   Benutzer an einem anderen Ort im Netzwerk), z. B. 10000 bis 65534. Das Wichtige   Ding ist, über ein Schema zu entscheiden und sich daran zu halten.

Zu den Vorteilen dieser Praxis gehört die Reservierung von Nummernblöcken   für bestimmte Arten von Benutzern ist es, dass es bequemer zu   Durchsuchen Sie Systemprotokolle nach verdächtigen Benutzeraktivitäten.

Entgegen der landläufigen Meinung ist es nicht notwendig, dass jeder Eintrag in der   UID-Feld muss eindeutig sein. Nicht eindeutige UIDs können jedoch Sicherheit verursachen   Probleme und damit UIDs sollten im gesamten Bereich einzigartig bleiben   Organisation. Ebenso sollte das Recycling von UIDs von ehemaligen Nutzern erfolgen   so lange wie möglich vermieden werden.


19





Liste aller Benutzer, die sich einloggen können (keine Systembenutzer wie: bin, deamon, mail, sys, etc.)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

hinzufügen neuer Benutzer

sudo adduser new_username

oder

sudo useradd new_username

löschen/ Benutzernamen entfernen

sudo userdel username

Wenn Sie das Home-Verzeichnis löschen möchten (standardmäßig das Verzeichnis / home / username)

sudo deluser --remove-home username

oder

sudo rm -r /path/to/user_home_dir

Wenn Sie alle Dateien aus dem System von diesem Benutzer löschen möchten (nicht nur das Home-Verzeichnis)

sudo deluser --remove-all-files

15



Vielleicht solltest du den Unterschied erklären adduser und useradd. Ein auch addieren Sie das sudo-prefix zum ersten Befehl. Die Passwort-Shadow-Datei kann nur als root gelesen werden. - s3lph
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow zeigte mir alle Benutzer einschließlich bin, daemon usw. und warnte diese Warnung: Escape-Sequenz \$' treated as plain $ 'Ich habe diesen Beitrag gefunden stackoverflow.com/a/25867768/847954  und fügte einen weiteren Backslash hinzu und es funktionierte gut: awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow - jeff musk


Ok, hier ist ein Trick, der dir hilft, das zu sortieren. Das Terminal verfügt über eine automatische Vervollständigung, wenn Sie einen Benutzer eingeben und die Tabulatortaste zweimal drücken, werden alle Befehle aufgelistet, die mit dem Benutzer als die ersten 4 Zeichen existieren.

user (tab tab)

gibt mir als mögliche Optionen     useradd userdel Benutzer user-admin
Wenn Sie mehr über einen Befehl wissen wollen, googlen Sie es oder geben Sie man ein     Mann useradd gibt     useradd - erstellt einen neuen Benutzer oder aktualisiert neue Benutzerinformationen     ...     ...

um Benutzer aufzulisten, sollten Sie mit dem gehen, was Mitch gesagt hat.

Hoffnung, die hilft, dass ich Tab-Vervollständigung in der Bash liebe, erspart mir, sich an Dinge zu erinnern.


7





Führen Sie die folgenden Befehle aus, um die Benutzer zu ermitteln, die über Home-Verzeichnisse im Ordner / home auf dem Computer verfügen

cd /home
ls 

Sie können dann die Benutzer sehen, die die Berechtigung haben, sich beim Server anzumelden. Wenn wir in die Dateien von Benutzern suchen möchten, müssen Sie der Benutzer root sein.


6



Dies zeigt nur den Inhalt von /home. Während Ubuntu standardmäßig Benutzerverzeichnisse anlegt, ist es in keiner Weise verpflichtend. - David Foerster