[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unix-Basics: Login-Shell eines Benutzers ermitteln?
[Thread Prev] | [Thread Next]
- Subject: Re: Unix-Basics: Login-Shell eines Benutzers ermitteln?
- From: Frank Thommen <lists.uugrn@xxxxxxxxxx>
- Date: Mon, 16 Sep 2013 11:43:01 +0200
- To: uugrn@xxxxxxxxxxxxxxx
Hallo,
On 15.09.13 10:16, Thomas Stiefel wrote:
> Hallo,
>
> Am 15.09.2013 02:08, schrieb Raphael Eiselstein:
> > Hallo zusammen,
> >
> > Unter Linux und FreeBSD funktioniert folgender "Hack":
> >
> > -----------------------------
> > $ getent passwd john | cut -f 7 -d ":"
> > -----------------------------
> >
> > Auf welchen unixoiden Betriebssystemen wuerde obiges fehlschlagen, zB
> > weil es "cut" nicht gibt oder mit einer anderen Syntax?
> Ich habe noch kein UNIX oder Linux gesehen, auf dem es kein cut gab.
> Noch nicht mal unter Solaris (^^) oder in einer eingeschraenkten
> chroot-Umgebung!
>
> > * Wie allgemeingueltig ist die Verwendung von "getent passwd"?
Kann ich nicht definitiv sagen, aber es gab das auch schon mit Solaris 2.4
> > * Wie allgemeingueltig ist das Format, welches "getent passwd" liefert?
> > (Trennzeichen und Anzahl/Position der Spalten)
Habe noch nie ein anderes Format gesehen.
> Wie allgemeingueltig es ist kann ich dir nicht sagen, aber es scheint ja
> nur den jeweiligen Eintrag der /etc/passwd auszugeben. Die Ausgabe ist
> die selbe wie bei "grep john /etc/passwd".
Nicht ganz. `getent` gibt Dir den Eintrag des jeweiligen Benutzers auf dem
aktuellen System, egal von welcher DB er kommt (/etc/passwd, NIS, NIS+, LDAP).
Z.B. mit /etc/nisswitch
passwd: compat
und /etc/passwd
+meinuser
gibt `getent passwd meinuser` den NIS (oder NIS+)-Eintrag dieses Benutzers.
> > Gibt es einen *generischen* Weg?
> >
> Wie waere es mit awk (ist eigentlich auch immer installiert):
>
> --------------------------------
> $ awk -F: '$1~/john/ {print $NF;}' /etc/passwd
> --------------------------------
Warum mit Kanonen (awk) auf Spatzen schiessen?
Wenn Du nur bash (oder ksh :-) verwenden willst, geht auch etwas in der Art:
U=`getent passwd <BENUTZERNAME>`;echo ${U##*:}
frank
--
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/