diff --git a/bin/check-home-permissions.py b/bin/check-home-permissions.py index ab716d43792b436c419fa720ade365b52ad71d25..7a4f80387c00a7acec048f4d55a9ccb07253eb97 100755 --- a/bin/check-home-permissions.py +++ b/bin/check-home-permissions.py @@ -11,7 +11,7 @@ import lib import dphysldap -home_dirs = [] +home_dirs = 0 users = {} nis_homes = {} nis_shares = {} @@ -78,12 +78,10 @@ def search_ldap(): for entry in entries: nis_shares[entry['cn'][0]] = entry['nisMapEntry'][0] - print('users: ' + str(len(users))) - print('nis_homes: ' + str(len(nis_homes))) - print('nis_shares: ' + str(len(nis_shares))) - def check_homes(top): + global home_dirs + if not os.path.isdir(top): return @@ -93,6 +91,7 @@ def check_homes(top): continue st = os.stat(pathname) home = Home(f, pathname, st) + home_dirs += 1 if bad_owner(home): owner.append(home) @@ -118,6 +117,13 @@ def check_homes(top): no_nis_map.append(home) +def check_shares(): + for user in list(users.keys()): + if user in nis_shares: + del nis_shares[user] + del users[user] + + def bad_owner(home): if home.name == home.uname and home.name == home.gname: return False @@ -144,19 +150,25 @@ if __name__ == '__main__': search_ldap() + print('ldap users: ' + str(len(users))) + print('ldap nismaps (home): ' + str(len(nis_homes))) + print('ldap nismaps (share): ' + str(len(nis_shares))) + for i, arg in enumerate(sys.argv): if i == 0: continue check_homes(arg) - print() - print('users: ' + str(len(users))) - print('nis_homes: ' + str(len(nis_homes))) - print('nis_shares: ' + str(len(nis_shares))) - print('bad_home_directory: ' + str(len(bad_home_directory))) - print('no_ldap_user: ' + str(len(no_ldap_user))) - print('bad_nis_map: ' + str(len(bad_nis_map))) - print('no_nis_map: ' + str(len(no_nis_map))) + check_shares() + + print('home dirs: ' + str(home_dirs)) + print('strange ldap users: ' + str(len(users))) + print('orphaned nis homes: ' + str(len(nis_homes))) + print('orphaned nis shares: ' + str(len(nis_shares))) + print('bad homeDirectory: ' + str(len(bad_home_directory))) + print('no user for home: ' + str(len(no_ldap_user))) + print('bad nismaps (home): ' + str(len(bad_nis_map))) + print('no nismap for home: ' + str(len(no_nis_map))) print() if owner: