Gibt es einen benutzerfreundlichen Befehl, mit dem ich Benutzer in einer Konsole auf einem Ubuntu-System auflisten kann?
Bei mir cat /etc/passwd
bekomme ich eine schwer lesbare Benutzerliste. Es wäre schön, eine alphabetische Liste mit Einträgen in Spalten und Gruppennamen in Klammern neben den Gruppen-IDs zu sehen.
command-line
users
M. Dudley
quelle
quelle
cut
. Für alphabetisch gibt essort
. Wenn Sie die Gruppennamen benötigen, spielen Sie mit Join (der möglicherweise nur eine Teilmenge der Spalten anzeigt, übrigens).Antworten:
Guter Weg für eine gute Ausgabe der Datei / etc / passwd:
Jetzt können Sie es sortieren:
Mit Gruppennamen in der letzten Spalte (ohne Klammer):
quelle
n
Option nicht gefallen .column -ts: /etc/passwd
hat gut funktioniert.Wenn Sie über Root-Zugriff auf dem Computer verfügen, können Sie folgende Aktionen ausführen:
Wie es funktioniert
Melden Sie sich als Root an, um die Schattendatei zu lesen. Sie benötigen nur Root-Rechte, wenn Sie überprüfen möchten, ob für den Benutzer ein Kennwort festgelegt wurde (menschlicher Benutzer), andernfalls können Sie nur
cat /etc/passwd
anstelle vonsudo grep ...
:Nur Benutzer anzeigen, für die ein Passwort festgelegt wurde:
Nach Benutzername sortieren:
Verwerfen Sie alle Informationen mit Ausnahme des Benutzernamens:
Durchlaufen Sie die Benutzernamen und bereichern Sie sie mit Gruppeninformationen:
Formatieren Sie die Eingabe in Spalten:
Verwenden Sie vi, um das Ergebnis anzuzeigen:
Wenn Sie keinen Root-Zugriff haben,
versuche so etwas:
Die Ausgabe ist etwas anders, aber ich überlasse es dem Leser als Übung, die beiden Teile in dieser Antwort zu etwas zu kombinieren, das voll und ganz in den Job passt. (Liebst du nicht einfach
sed
?)quelle
In Ubuntu kann es wie folgt sein:
Sieben Felder aus / etc / passwd, die in $ f1, f2 ..., $ f7 gespeichert sind
quelle
Etwas, das ich tue und das für meine Zwecke funktioniert, ist
Zugegeben, das gibt Ihnen nicht wirklich eine Liste der Benutzer, sondern eine Liste der Home-Verzeichnisse des Benutzers und der Verzeichnisse früherer Benutzer, aber jeder Befehl, den Sie für einen Benutzer ausführen möchten, der kein Terminal hat, sagt es Ihnen und könnte ein Hinweis zum Entfernen sein die Home-Datei, die keinen Benutzer hat oder sie verschiebt!
quelle
Ich dachte, dass dies einfach wäre
join
, aberjoin
erfordert , dass die Dateien im Verknüpfungsfeld sortiert werden . Daher war eine Problemumgehung mit temporären Dateien erforderlich (?). Die Ausgabe ist nach Benutzer sortiert und zeigt Benutzer, Gruppe und Gruppen-ID an.Übersetzen Sie ein Zeichen in ein anderes mit
tr
;sort
entsprechend einem Schlüsselfeld mit-k
, Ausgabe in Datei mit-o
; Join in Bezug auf Felder in der ersten (-1
) und zweiten (-2
) Datei, Ausgabe bestimmter Felder in der ersten Datei (-o 1.1
) sowie der zweiten (,2.1,2.3
).quelle
/tmp
dies besser wäre, da FHS angibt, dass/var/tmp
bei einem Neustart keine Daten gelöscht werden, die wir nicht wirklich benötigen.