c560bc2e3a
Related: RHEL-40924
35 lines
912 B
Python
Executable File
35 lines
912 B
Python
Executable File
#!/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}')
|