From 2e94cf8e00d6d30928d81450dfaf0c4b0854c938 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sven=20M=C3=A4der?= <maeder@phys.ethz.ch>
Date: Thu, 23 Aug 2018 14:04:35 +0200
Subject: [PATCH] Improve output

---
 bin/check-home-permissions.py | 38 +++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/bin/check-home-permissions.py b/bin/check-home-permissions.py
index ab716d4..7a4f803 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:
-- 
GitLab