diff --git a/bin/check-home-permissions.py b/bin/check-home-permissions.py index bc68786ee4e64366b79885831ecc8b05be44e416..44092619aaae5a973fd3f29bc300a82b70c768c8 100755 --- a/bin/check-home-permissions.py +++ b/bin/check-home-permissions.py @@ -72,26 +72,33 @@ def search_ldap(): ldap.search('(objectClass=posixAccount)', search_base=people, attributes=['uid', 'blocked', 'homeDirectory']) ldap_users = ldap.response for user in ldap_users: + uid = user['attributes']['uid'][0] + blocked = user['attributes']['blocked'] + home_dir = user['attributes']['homeDirectory'] user_attrs = {} - user_attrs['homeDirectory'] = user['attributes']['homeDirectory'] - if user['attributes']['blocked']: - user_attrs['blocked'] = user['attributes']['blocked'] + user_attrs['homeDirectory'] = home_dir + if blocked: + user_attrs['blocked'] = blocked else: - no_blocked.append(user['attributes']['uid'][0]) + no_blocked.append(uid) user_attrs['blocked'] = 'no' - users[user['attributes']['uid'][0]] = user_attrs + users[uid] = user_attrs ldap.search('(&(objectClass=nisObject)(cn=*)(nisMapEntry=phd-home*))', search_base=auto_home, attributes=['cn', 'nisMapEntry']) entries = ldap.response for entry in entries: - nis_homes[entry['attributes']['cn'][0]] = entry['attributes']['nisMapEntry'] + cn = entry['attributes']['cn'][0] + nis_map = entry['attributes']['nisMapEntry'] + nis_homes[cn] = nis_map ldap.search('(&(objectClass=nisObject)(cn=*)(!(nisMapEntry=phd-home*)))', search_base=auto_home, attributes=['cn', 'nisMapEntry']) entries = ldap.response for entry in entries: - nis_shares[entry['attributes']['cn'][0]] = entry['attributes']['nisMapEntry'] + cn = entry['attributes']['cn'][0] + nis_map = entry['attributes']['nisMapEntry'] + nis_shares[cn] = nis_map def check_homes(top): diff --git a/bin/xymon-home.py b/bin/xymon-home.py index d0c7f98638975316946d0274be256adb25967600..53b30196cf4af15047bef9b5313a6540cc14d8f6 100755 --- a/bin/xymon-home.py +++ b/bin/xymon-home.py @@ -72,28 +72,39 @@ class Home(object): def search_ldap(): ldap = dphysldap.Ldap() - ldap_users = dphysldap.Users(ldap, ['uid', 'uidNumber', 'gidNumber', 'homeDirectory']) - entries = dphysldap.Entries(ldap, ['cn', 'nisMapEntry']) + people = 'ou=people,dc=phys,dc=ethz,dc=ch' auto_home = 'nisMapName=auto.home,ou=automount,dc=phys,dc=ethz,dc=ch' - ldap_users.search('*') + ldap.search('(objectClass=posixAccount)', search_base=people, attributes=['uid', 'blocked', 'homeDirectory']) + ldap_users = ldap.response for user in ldap_users: + uid = user['attributes']['uid'][0] + blocked = user['attributes']['blocked'] + home_dir = user['attributes']['homeDirectory'] user_attrs = {} - user_attrs['homeDirectory'] = user['homeDirectory'][0] - if user['blocked']: - user_attrs['blocked'] = user['blocked'][0] + user_attrs['homeDirectory'] = home_dir + if blocked: + user_attrs['blocked'] = blocked else: - no_blocked.append(user['uid'][0]) + no_blocked.append(uid) user_attrs['blocked'] = 'no' - users[user['uid'][0]] = user_attrs + users[uid] = user_attrs - entries.search('cn: *, nisMapEntry: phd-home*', ['nisObject'], base=auto_home) + ldap.search('(&(objectClass=nisObject)(cn=*)(nisMapEntry=phd-home*))', + search_base=auto_home, attributes=['cn', 'nisMapEntry']) + entries = ldap.response for entry in entries: - nis_homes[entry['cn'][0]] = entry['nisMapEntry'][0] + cn = entry['attributes']['cn'][0] + nis_map = entry['attributes']['nisMapEntry'] + nis_homes[cn] = nis_map - entries.search('cn: *, nisMapEntry: != phd-home*', ['nisObject'], base=auto_home) + ldap.search('(&(objectClass=nisObject)(cn=*)(!(nisMapEntry=phd-home*)))', + search_base=auto_home, attributes=['cn', 'nisMapEntry']) + entries = ldap.response for entry in entries: - nis_shares[entry['cn'][0]] = entry['nisMapEntry'][0] + cn = entry['attributes']['cn'][0] + nis_map = entry['attributes']['nisMapEntry'] + nis_shares[cn] = nis_map def check_homes(top):