diff --git a/.gitignore b/.gitignore
index b0b1e02bc2d08cc57eb6a6c33bb447438c2a531d..bec610f9ee26d504c30c10a2a7fe9cbe978a5107 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ htmlcov/
 *.swp
 .tox
 .coverage
+.idea
diff --git a/chkcrontab b/chkcrontab
index e11510e377b9f63fcfff1d4d2eeb75dd63203144..1e5b3832e4b3644b568c57d90aa6112653e1ce37 100755
--- a/chkcrontab
+++ b/chkcrontab
@@ -29,15 +29,36 @@ __author__ = 'lyda@google.com (Kevin Lyda)'
 import sys
 import chkcrontab_lib as check
 
+from optparse import OptionParser
 
 def main(argv):
   """main program."""
-  if len(argv) != 2:
+  if len(argv) == 1:
     print('ERROR: No crontab file was specified.')
     sys.exit(1)
+
   log = check.LogCounter()
   print('Checking correctness of %s' % argv[1])
-  return check.check_crontab(argv[1], log)
+  return check.check_crontab(argv[1], log, get_whitelisted_users(argv))
+
+def get_whitelisted_users(argv):
+  """Gets the list of whitelisted users, if any.
+
+  Args:
+    argv: The argument string supplied by the caller.
+
+  Returns:
+    The list of whitelisted users.
+  """
+  parser = OptionParser()
+  parser.add_option('-w', '--whitelist', dest='whitelisted_users', action='append',
+                    help='A user to ignore when warning of unrecognized users  This argument may be passed multiple times.')
+  (options, args) = parser.parse_args(argv)
+
+  if options.whitelisted_users:
+    return options.whitelisted_users
+  else:
+    return None
 
 if __name__ == '__main__':
-  sys.exit(main(sys.argv))
+  sys.exit(main(sys.argv))
\ No newline at end of file
diff --git a/chkcrontab_lib.py b/chkcrontab_lib.py
index 9eab90f2e8bdb050a56a66868a88f39de1402e39..c1c1004ab8ce41de95bd8e7b49e971eae0a0f4ae 100755
--- a/chkcrontab_lib.py
+++ b/chkcrontab_lib.py
@@ -1043,7 +1043,7 @@ class LogCounter(object):
     return self._error_count
 
 
-def check_crontab(crontab_file, log):
+def check_crontab(crontab_file, log, whitelisted_users=None):
   """Check a crontab file.
 
   Checks crontab_file for a variety of errors or potential errors.  This only
@@ -1052,6 +1052,7 @@ def check_crontab(crontab_file, log):
   Args:
     crontab_file: Name of the crontab file to check.
     log: A LogCounter object.
+    whitelisted_users: A comma delimited list of users to ignore when warning on unrecognized users.
 
   Returns:
     0 if there were no errors.
@@ -1063,6 +1064,10 @@ def check_crontab(crontab_file, log):
   if not os.path.exists(crontab_file):
     return log.Summary()
 
+  # Add the any specified users to the whitelist
+  if whitelisted_users:
+    USER_WHITELIST.update(whitelisted_users)
+
   # Check the file name.
   if re.search('[^A-Za-z0-9_-]', os.path.basename(crontab_file)):
     in_whitelist = False
diff --git a/tests/test_check.py b/tests/test_check.py
index 87ac551646332474e63ce43d5abd63135abd3a8f..57246d5ed039bdf9971c04d94d43fee330cefb6b 100755
--- a/tests/test_check.py
+++ b/tests/test_check.py
@@ -307,11 +307,11 @@ class CheckCrontabUnitTest(unittest.TestCase):
       exp_rc = 0
     return (exp_warn, exp_fail, exp_rc)
 
-  def CheckACrontab(self, crontab):
+  def CheckACrontab(self, crontab, whitelisted_users=None):
     log = check.LogCounter()
     crontab_file = os.path.join(BASE_PATH, crontab)
     (exp_warn, exp_fail, exp_rc) = self.GetExpWFRs(crontab_file)
-    self.assertEquals(check.check_crontab(crontab_file, log), exp_rc,
+    self.assertEquals(check.check_crontab(crontab_file, log, whitelisted_users), exp_rc,
                       'Failed to return %d for crontab errors.' % exp_rc)
     self.assertEquals(log.warn_count, exp_warn,
                       'Found %d warns not %d.' % (log.warn_count, exp_warn))
@@ -330,6 +330,9 @@ class CheckCrontabUnitTest(unittest.TestCase):
   def testCheckBadWithDisablesCrontab(self):
     self.CheckACrontab('test_crontab.disable')
 
+  def testCheckWarnWithWhitelistedUser(self):
+    self.CheckACrontab('test_crontab.whitelist', ['not_a_user'])
+
 
 if __name__ == '__main__':
   result = unittest.main()
diff --git a/tests/test_crontab.whitelist b/tests/test_crontab.whitelist
new file mode 100644
index 0000000000000000000000000000000000000000..0e58c225d781e79aabd8b23d8e56a998f9e38ebe
--- /dev/null
+++ b/tests/test_crontab.whitelist
@@ -0,0 +1,3 @@
+# WARN 1 for questionable file name.
+# WARN 0 for missing user
+1 * * * * not_a_user Command
\ No newline at end of file