Parse the system users db
()
| 1070 | |
| 1071 | |
| 1072 | def ParseSysUsers(): |
| 1073 | ''' Parse the system users db ''' |
| 1074 | |
| 1075 | global ADMINS |
| 1076 | |
| 1077 | PrintAndLog(u'System\'s users', 'SUBSECTION') |
| 1078 | for User in os.listdir(os.path.join(ROOT_PATH, 'private/var/db/dslocal/nodes/Default/users')): |
| 1079 | if User[0] != '.': |
| 1080 | SysUserPlistPath = os.path.join(ROOT_PATH, 'private/var/db/dslocal/nodes/Default/users', User) |
| 1081 | PrintAndLog(User[:-6] + u'\'s system account details', 'SUBSECTION') |
| 1082 | |
| 1083 | SysUserPlist = UniversalReadPlist(SysUserPlistPath) |
| 1084 | |
| 1085 | UserDetails ='' |
| 1086 | if SysUserPlist: |
| 1087 | if 'name' in SysUserPlist: |
| 1088 | Names = u'' |
| 1089 | for Name in SysUserPlist['name']: |
| 1090 | Names += Name |
| 1091 | if Name in ADMINS: |
| 1092 | Names += u' (is Admin)' |
| 1093 | Names += u'\n' |
| 1094 | UserDetails += u'Name(s): ' + Names |
| 1095 | |
| 1096 | if 'realname' in SysUserPlist: |
| 1097 | UserDetails += u'Real Name(s): ' + StringFromDic(SysUserPlist['realname']) |
| 1098 | |
| 1099 | if 'shell' in SysUserPlist: |
| 1100 | UserDetails += u'Shell(s): ' + StringFromDic(SysUserPlist['shell']) |
| 1101 | |
| 1102 | if 'home' in SysUserPlist: |
| 1103 | UserDetails += u'Home(s): ' + StringFromDic(SysUserPlist['home']) |
| 1104 | |
| 1105 | if 'uid' in SysUserPlist: |
| 1106 | UserDetails += u'UID(s): ' + StringFromDic(SysUserPlist['uid']) |
| 1107 | |
| 1108 | if 'gid' in SysUserPlist: |
| 1109 | UserDetails += u'GID(s): ' + StringFromDic(SysUserPlist['gid']) |
| 1110 | |
| 1111 | if 'generateduid' in SysUserPlist: |
| 1112 | Generateduids = u'' |
| 1113 | for Generateduid in SysUserPlist['generateduid']: |
| 1114 | Generateduids += Generateduid |
| 1115 | if Generateduid in ADMINS: |
| 1116 | Generateduids += u' (is Admin)' |
| 1117 | Generateduids += u'\n' |
| 1118 | UserDetails += u'generated UID(s): ' + Generateduids |
| 1119 | |
| 1120 | if 'LinkedIdentity' in SysUserPlist: |
| 1121 | UserDetails += u'LinkedIdentities have been found. Extraction of LinkedIdentities is not implemented yet.' |
| 1122 | |
| 1123 | PrintAndLog(UserDetails, 'INFO_RAW') |
| 1124 | |
| 1125 | def ParseSysAdminsGroup(): |
| 1126 | ''' Parse the system admins group db ''' |
no test coverage detected