Aktueller Benutzer
-
Hallo zusammen,
Ich benötige für mein Programm den aktuellen angemeldeten Benutzer und den Pfad zum Home Verzeichnis.
Unter Windows gibt es die Function GetUserName, gibt es unter Linux auch sowas oder wie bekomme ich das heraus ????Vielen Dank im voraus
-
Das einzige was ich dir empfehlen kann, ist dir den Quellcode von
who
anzusehen : Tip mal ein
who am i
!
[ Dieser Beitrag wurde am 10.04.2003 um 13:40 Uhr von ºgrimmsenº
editiert. ]
-
info libc
-> Users and Groups
-
Original erstellt von Shuffel:
**Hallo zusammen,
Ich benötige für mein Programm den aktuellen angemeldeten Benutzer und den Pfad zum Home Verzeichnis.
Unter Windows gibt es die Function GetUserName, gibt es unter Linux auch sowas oder wie bekomme ich das heraus ????Vielen Dank im voraus**
zuerst den nutzer
geteuid(); oder getuid(); müsste dir helfen
für das Homeverzeichniss
getenv("HOME")
denke ich mal
am besten du schaust mal bei gnu nach, denn die sh-utils sind wohl das beste Beispiel
http://www.gnu.org/directory/sysadmin/shellutils.htmlJoe
-
Vielen Dank schonmal.
Ich werde eure Tips gleich mal anschauen und durchprobieren.
Das Programm muß auf beiden Plattformen laufen, ich aber progge unter windows und fahre nur ab und zu einen Linux-Lauf. Werde mich aber melden wenn es geklappt hat.
-
Hi,
#include <unistd.h> char *getlogin ( void ); //liefert dir den loginnamen zu einem prozess oder NULL
Alternativ kannst du auch folgenden Aufruf machen und das entsprechende
Strukturelement auslesen:getpwuid ( getuid () ); //liefert einen zeiger auf ein struct passwd
Bei dieser Methode ist es allerdings nicht gewaehrleistet, dass du den korrekten
Benutzer herausbekommst, falls dieser mehrere Loginnamen hat.mfg
v R[ Dieser Beitrag wurde am 10.04.2003 um 18:22 Uhr von virtuell Realisticer editiert. ]
-
Quick & Dirty:
for i in $( who | cut -f1 -d" " | uniq );do echo -n "$i->"; getent passwd $i| cut -f 6 -d ":"; done