35 lines
912 B
Python
35 lines
912 B
Python
|
#!/usr/bin/python
|
||
|
|
||
|
import sys
|
||
|
|
||
|
def parse_sysusers_file(filename):
|
||
|
users, groups = set(), set()
|
||
|
|
||
|
for line in open(filename):
|
||
|
line = line.strip()
|
||
|
if not line or line.startswith('#'):
|
||
|
continue
|
||
|
words = line.split()
|
||
|
match words[0]:
|
||
|
case 'u':
|
||
|
users.add(words[1])
|
||
|
case 'g':
|
||
|
groups.add(words[1])
|
||
|
case 'm'|'r':
|
||
|
continue
|
||
|
case _:
|
||
|
assert False
|
||
|
return users, groups
|
||
|
|
||
|
setup_users, setup_groups = parse_sysusers_file(sys.argv[1])
|
||
|
setup_users2, setup_groups2 = parse_sysusers_file(sys.argv[2])
|
||
|
setup_users |= setup_users2
|
||
|
setup_groups |= setup_groups2
|
||
|
|
||
|
basic_users, basic_groups = parse_sysusers_file(sys.argv[3])
|
||
|
|
||
|
if d := basic_users - setup_users:
|
||
|
exit(f'We have new users: {d}')
|
||
|
if d := basic_groups - setup_groups:
|
||
|
exit(f'We have new groups: {d}')
|