Gibt es einen Befehl, um alle Benutzer aufzulisten? Auch zum Hinzufügen, Löschen, Ändern von Benutzern im Terminal?

Ich benötige einen Befehl zum Auflisten aller Benutzer sowie Befehle zum Hinzufügen, Löschen und Ändern von Benutzern über das Terminal - alle Befehle, die bei der einfachen Verwaltung von Benutzerkonten über das Terminal hilfreich sein könnten.

Aufführen

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

cut -d: -f1 /etc/passwd

Informationen zum Auflisten aller Benutzer, die sich (auf irgendeine Weise) authentifizieren können, einschließlich nicht lokaler Benutzer, finden Sie unter diese Antwort.

Einige weitere nützliche Benutzerverwaltungsbefehle (auch beschränkt auf lokal Internetnutzer):

Hinzufügen

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?

Zum Entfernen/Löschen

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

sudo userdel Benutzernamen

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

sudo rm -r / Zuhause/Benutzernamen

Bitte verwenden Sie den obigen Befehl mit Vorsicht!

Ändern

So ändern Sie den Benutzernamen eines Benutzers:

usermod -l neuer_benutzername Alter_benutzername

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

sudo passwd Benutzernamen

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

sudo chsh Benutzernamen

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

sudo chfn Benutzernamen

So fügen Sie einen Benutzer zur sudo Gruppe:

adduser Benutzernamen sudo

oder

usermod -aG sudo Benutzernamen

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

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

cat /etc/passwd

ODER

less /etc/passwdmore /etc/passwd

Sie können auch awk verwenden:awk

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

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 liefert wie cat /etc/passwd es ist nützlich, sich daran zu erinnern, da Sie Listen mit mehreren Elementen im Betriebssystem erhalten.

Um eine Liste aller Benutzer zu erhalten, die Sie eingeben (da Benutzer in aufgelistet sind /etc/passwd)

getent passwd

So fügen Sie einen Benutzer hinzu 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 beliebigen Benutzer hinzuzufügen (zum Beispiel beliebigerbenutzer) zu einer Gruppe (zum Beispiel CD-rom) Art

sudo adduser anyuser cdrom

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

sudo deluser obsolete

Wenn Sie auch sein Home-Verzeichnis / seine E-Mails löschen möchten, geben Sie Folgendes ein

sudo deluser --remove-home obsolete

Und

sudo deluser --remove-all-files obsolete

entfernt den Benutzer und alle Dateien, die diesem Benutzer auf dem gesamten System gehören.

Sie können verwenden compgen GNU bash integriert zu:

compgen -u

Listet alle Benutzer auf.

Dies sollte bekommen, in den meisten normalen Situationen, alle normalen (nicht-systemischen, nicht seltsamen usw.) Benutzer:

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

Dies funktioniert durch:

  • einlesen von /etc/passwd
  • wobei : 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 nicht privilegierte (man könnte sagen normale) Benutzer reserviert sind. Einige Infos dazu hier:

Eine Benutzer-ID (UID) ist eine eindeutige positive Ganzzahl, die von einem Unix-ähnlichen Betriebssystem jedem Benutzer zugewiesen wird. Jeder Benutzer wird für das System durch seine UID identifiziert, und Benutzernamen werden im Allgemeinen nur als Schnittstelle für Menschen verwendet.

UIDs werden zusammen mit den entsprechenden Benutzernamen und anderen benutzerspezifischen Informationen in der Datei /etc/passwd gespeichert...

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

In den Linux-Kerneln 2.4 und höher sind UIDs vorzeichenlose 32-Bit-Ganzzahlen, die Werte von Null bis 4.294.967.296 darstellen können. Es ist jedoch ratsam, nur Werte bis zu 65.534 zu verwenden, um die Kompatibilität mit Systemen aufrechtzuerhalten, die ältere Kernel oder Dateisysteme verwenden, die nur 16-Bit-UIDs aufnehmen können.

Die UID von 0 hat eine besondere Rolle: Sie ist immer das Root-Konto (dh der allmächtige administrative Benutzer). Obwohl der Benutzername für dieses Konto geändert werden kann und zusätzliche Konten mit derselben UID erstellt werden können, ist aus Sicherheitsgründen keine der beiden Aktionen sinnvoll.

Die UID 65534 ist üblicherweise für nobody reserviert, einen Benutzer ohne Systemberechtigungen, im Gegensatz zu einem normalen (dh nicht privilegierten) Benutzer. Diese UID wird häufig für Personen verwendet, die remote über FTP (File Transfer Protocol) oder HTTP (Hypertext Transfer Protocol) auf das System zugreifen.

Die UIDs 1 bis 99 sind traditionell für spezielle Systembenutzer (manchmal auch Pseudobenutzer genannt) reserviert, z. B. Wheel, Daemon, lp, Operator, News, Mail usw. Diese Benutzer sind Administratoren, die keine vollständigen Root-Berechtigungen benötigen, aber einige administrative Aufgaben ausführen und daher mehr Berechtigungen benötigen als normale Benutzer.

Einige Linux-Distributionen (d. H. Versionen) beginnen UIDs für nicht privilegierte Benutzer bei 100. Andere, wie Red Hat, beginnen sie bei 500, und wieder andere, wie Debian, beginnen sie bei 1000. Aufgrund der Unterschiede zwischen den Distributionen kann ein manueller Eingriff erforderlich sein, wenn mehrere Distributionen in einem Netzwerk in einer Organisation verwendet werden.

Es kann auch zweckmäßig sein, einen Block von UIDs für lokale Benutzer zu reservieren, z. B. 1000 bis 9999, und einen weiteren Block für Remotebenutzer (d. H. Benutzer an anderer Stelle im Netzwerk), z. B. 10000 bis 65534. Wichtig ist, sich für ein Schema zu entscheiden und es einzuhalten.

Zu den Vorteilen dieser Praxis, Nummernblöcke für bestimmte Benutzertypen zu reservieren, gehört, dass es bequemer ist, Systemprotokolle nach verdächtigen Benutzeraktivitäten zu durchsuchen.

Entgegen der landläufigen Meinung ist es nicht erforderlich, dass jeder Eintrag im UID-Feld eindeutig ist. Nicht eindeutige UIDs können jedoch Sicherheitsprobleme verursachen, und daher sollten UIDs in der gesamten Organisation eindeutig gehalten werden. Ebenso sollte das Recycling von UIDs ehemaliger Benutzer so lange wie möglich vermieden werden.

Liste von allen Benutzern, die sich anmelden können (keine Systembenutzer wie: bin, deamon, mail, sys usw.).)

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

hinzufügen neuer Benutzer

sudo adduser new_username

oder

sudo useradd new_username

löschen/benutzername entfernen

sudo userdel username

Wenn Sie das Home-Verzeichnis löschen möchten (Standard das Verzeichnis /home/username)

sudo deluser --remove-home username

oder

sudo rm -r /path/to/user_home_dir

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

sudo deluser --remove-all-files

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

user (tab tab)

gibt mir als mögliche Optionen useradd userdel usermod Benutzer Benutzer-admin
wenn Sie mehr über einen Befehl erfahren möchten, googeln Sie ihn oder geben Sie man man useraddgives useradd ein - Erstellen Sie einen neuen Benutzer oder aktualisieren Sie die Standardinformationen für neue Benutzer ... ...

um Benutzer aufzulisten, sollten Sie sich an das halten, was Mitch gesagt hat.

Hoffe, das hilft mir, die Tabulatorvervollständigung in Bash zu lieben, und erspart mir, mich an Dinge zu erinnern.

Führen Sie die folgenden Befehle aus, um herauszufinden, welche Benutzer Home-Verzeichnisse im Ordner / home auf dem Computer haben

cd /homels 

Sie können dann die Benutzer sehen, die berechtigt sind, sich am Server anzumelden. Wenn wir in die Dateien von Benutzern einsehen möchten, müssen Sie der Root-Benutzer sein.

Die erste Antwort empfiehlt:

cut -d: -f1 /etc/passwd

Aber wenn Sie dies verwenden und die Anzahl der Benutzer zählen, erhalten Sie:

$ cut -d: -f1 /etc/passwd | wc -l46

46 benutzer für einen Laptop sind viel!. Also benutze das stattdessen:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync)' | cut -d: -f1rootrickguest-atkb2qguest-u4sf2iguest-rmlbtgguest-mz53vp

Um Gastkonten zu entfernen (die sowieso keine gespeicherten Dateien haben), verwenden Sie:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync|guest-)' | cut -d: -f1rootrick

Einige Beispielbenutzer, die aus der Liste entfernt wurden, sind:

systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/falsegnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncsync:x:4:65534:sync:/bin:/bin/syncguest-atkb2q:x:999:999:Guest:/tmp/guest-atkb2q:/bin/bash

Es stellt sich heraus, dass die meisten Benutzer auf einem Einzelbenutzersystem tatsächlich Programme sind, die sich als Benutzer eingerichtet haben.

sed Antwort sed 's /:.*//' /etc/Passwort

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