[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/