Gibt die Standard-Shell jedes Benutzers zurück

Gibt die Standard-Shell jedes Benutzers zurück

Ich versuche, einen einzelnen Befehl zusammenzustellen, der die Standard-Shell jedes Benutzers anzeigt. Bei der Recherche kann ich hauptsächlich Befehle finden, mit denen die Standard-Shell geändert werden kann, z. B., chsh -s /bin/kshaber nicht, um die aktuelle Aufgabe auszuführen.

Weiß jemand, wie man dies unter CentOS erreichen kann?

Antwort1

Eine andere Möglichkeit, es zu tun

getent passwd | cut -d: -f1,7

Antwort2

Sie können die /etc/passwdDatei analysieren, die den Benutzernamen und die Login-Shell-Liste sowie andere relevante Informationen zu allen Benutzerkonten des Systems enthält.

Der Benutzername wird im :ersten (separaten) Feld und die Login-Shell im siebten (letzten) Feld gespeichert.

Sie können awkdie Felder also mit ein wenig Formatierung dazwischen ausdrucken, um sie hübscher zu gestalten:

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

Wenn Sie Dienste wie diesen verwenden, ldapdie kein lokales Dateisystem nutzen, können Sie getent passwdFolgendes verwenden nsswitch, um die Informationen abzurufen, und dann awkFolgendes verwenden:

getent passwd | awk -F':' '{ print $1 " " FS " " $NF }'

Beispiel:

% awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd
root : /bin/bash
daemon : /usr/sbin/nologin
bin : /usr/sbin/nologin
sys : /usr/sbin/nologin
sync : /bin/sync
games : /usr/sbin/nologin
man : /usr/sbin/nologin
lp : /usr/sbin/nologin
mail : /usr/sbin/nologin

Antwort3

Diese Informationen werden in /etc/passwd gespeichert:

cut -d: -f1,7 /etc/passwd

verwandte Informationen