#!/usr/bin/env python import grp import pwd import sys def usage(): print >> sys.stderr, "Usage: id-other-than <--user|--group> ID [ID ...]" if len(sys.argv) < 2: usage() sys.exit(1) def is_integer(x): try: int(x) return True except ValueError, e: return False excluded_ids = frozenset(int(x) for x in sys.argv[2:] if is_integer(x)) excluded_names = frozenset(x for x in sys.argv[2:] if not is_integer(x)) if sys.argv[1] == '--user': for x in pwd.getpwall(): if x.pw_name not in excluded_names and x.pw_uid not in excluded_ids: print x.pw_name + ':' + str(x.pw_uid) sys.exit(0) elif sys.argv[1] == '--group': for x in grp.getgrall(): if x.gr_name not in excluded_names and x.gr_gid not in excluded_ids: print x.gr_name + ':' + str(x.gr_gid) sys.exit(0) else: usage() sys.exit(1)