; Module/File: System_UserInfo.pb ; Function: Shows User-Infos - Linux ; Author: Progi1984 / Omi ; Date: Dec. 09, 2014 ; Version: 0.2 ; Target Compiler: PureBasic 5.22/5.31 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ; Link to topic: http://www.purebasic.fr/french/viewtopic.php?f=14&t=9102 ;-------------------------------------------------------------- Structure PASSWD pw_name.s ; user name pw_passwd.s ; user password pw_uid.l ; user id pw_gid.l ; group id pw_gecos.s ; real name pw_dir.s ; home directory pw_shell.s ; shell program EndStructure Global.l gUID= getuid_(); Choose UserID !!! also geteuid_() Global *InfosUserMem = AllocateMemory(SizeOf(PASSWD)) Global InfosUser.PASSWD Debug "USER ..." *InfosUserMem = getpwuid_(gUID); password file entry, UserID If *InfosUserMem CopyMemory(*InfosUserMem, @InfosUser, SizeOf(PASSWD)) Debug "NAME :" + PeekS(@InfosUser\pw_name, -1, #PB_Ascii); user name Debug "PASSWORD :" + PeekS(@InfosUser\pw_passwd, -1, #PB_Ascii); user password Debug "UID :" + Str(InfosUser\pw_uid); user id Debug "GID :" + Str(InfosUser\pw_gid); group id Debug "REALNAME :" + PeekS(@InfosUser\pw_gecos, -1, #PB_Ascii); real name Debug "HOMEDIR :" + PeekS(@InfosUser\pw_dir, -1, #PB_Ascii); home directory Debug "SHELLPGM :" + PeekS(@InfosUser\pw_shell, -1, #PB_Ascii); shell program Else Debug "USER non-existing" EndIf ;2. possibiliry direkt access... ; ; Global.l gUID= 1000; Choose UserID !!! ; Global *InfosUserMem.PASSWD = AllocateMemory(SizeOf(PASSWD)) ; Global InfosUser.PASSWD ; ; Debug "USER ..." ; *InfosUserMem.PASSWD = getpwuid_(gUID); UserID ; If *InfosUserMem ; ;CopyMemory(*InfosUserMem, @InfosUser, SizeOf(PASSWD)) ; Debug "NAME :" + PeekS(@*InfosUserMem\pw_name, -1, #PB_Ascii); user name ; Debug "PASSWORD :" + PeekS(@*InfosUserMem\pw_passwd, -1, #PB_Ascii); user password ; Debug "UID :" + Str(*InfosUserMem\pw_uid); user id ; Debug "GID :" + Str(*InfosUserMem\pw_gid); group id ; Debug "REALNAME :" + PeekS(@*InfosUserMem\pw_gecos, -1, #PB_Ascii); real name ; Debug "HOMEDIR :" + PeekS(@*InfosUserMem\pw_dir, -1, #PB_Ascii); home directory ; Debug "SHELLPGM :" + PeekS(@*InfosUserMem\pw_shell, -1, #PB_Ascii); shell program ; Else ; Debug "USER non-existing" ; EndIf ; IDE Options = PureBasic 5.46 LTS Beta 2 (Linux - x86) ; CursorPosition = 9 ; EnableUnicode ; EnableXP