[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unix-Basics: Login-Shell eines Benutzers ermitteln?


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/