diff --git a/PRESUBMIT.cfg b/PRESUBMIT.cfg
index 25c8a3a..450b7b9 100644
--- a/PRESUBMIT.cfg
+++ b/PRESUBMIT.cfg
@@ -3,4 +3,4 @@
 manifest_check: true
 
 [Hook Scripts]
-hook0 = profiles/base/accounts/display-accts.py
+account_checks = profiles/base/accounts/display-accts.py --lint
diff --git a/profiles/base/accounts/display-accts.py b/profiles/base/accounts/display-accts.py
index 1d519ff..eb8c2d0 100755
--- a/profiles/base/accounts/display-accts.py
+++ b/profiles/base/accounts/display-accts.py
@@ -26,10 +26,24 @@
   """Parse the raw data in |content| and return a new |obj|"""
   d = defaults.copy()
 
+  # Make sure files all have a trailing newline.
+  if not content.endswith('\n'):
+    raise ValueError('File needs a trailing newline')
+
+  # Disallow leading & trailing blank lines.
+  if content.startswith('\n'):
+    raise ValueError('Delete leading blank lines')
+  if content.endswith('\n\n'):
+    raise ValueError('Delete trailing blank lines')
+
   for line in content.splitlines():
     if not line or line.startswith('#'):
       continue
 
+    # Disallow leading & trailing whitespace.
+    if line != line.strip():
+      raise ValueError('Trim leading/trailing whitespace: "%s"' % line)
+
     key, val = line.split(':')
     if key not in obj._fields:
       raise ValueError('unknown key: %s' % key)
@@ -197,6 +211,8 @@
   parser = argparse.ArgumentParser(description=__doc__)
   parser.add_argument('--show-free', default=False, action='store_true',
                       help='Find next available UID/GID')
+  parser.add_argument('--lint', default=False, action='store_true',
+                      help='Validate all the user accounts')
   parser.add_argument('account', nargs='*',
                       help='Display these account files only')
   return parser
@@ -237,30 +253,31 @@
     ShowNextFree(groups, users)
     return
 
-  if groups:
-    order = (
-        ('gid', ''),
-        ('group', ''),
-        ('password', 'pass'),
-        ('users', ''),
-        ('defunct', ''),
-    )
-    DisplayAccounts(groups, order)
-
-  if users:
+  if not opts.lint:
     if groups:
-      print()
-    order = (
-        ('uid', ''),
-        ('gid', ''),
-        ('user', ''),
-        ('shell', ''),
-        ('home', ''),
-        ('password', 'pass'),
-        ('gecos', ''),
-        ('defunct', ''),
-    )
-    DisplayAccounts(users, order)
+      order = (
+          ('gid', ''),
+          ('group', ''),
+          ('password', 'pass'),
+          ('users', ''),
+          ('defunct', ''),
+      )
+      DisplayAccounts(groups, order)
+
+    if users:
+      if groups:
+        print()
+      order = (
+          ('uid', ''),
+          ('gid', ''),
+          ('user', ''),
+          ('shell', ''),
+          ('home', ''),
+          ('password', 'pass'),
+          ('gecos', ''),
+          ('defunct', ''),
+      )
+      DisplayAccounts(users, order)
 
   if consistency_check and not CheckConsistency(groups, users):
     return os.EX_DATAERR
