Skip to content
Snippets Groups Projects

Feat group manager

Merged Bo-Chun Chen requested to merge louistw/rabbitmq_agents:feat-group-manager into main
group_manager.py 0 → 100755
+ 59
0
 
#!/usr/bin/env python3
 
import argparse
 
import grp
 
import os
 
import pwd
 
import sys
 
 
 
def user_exists(username):
 
try:
 
pwd.getpwnam(username)
 
except KeyError:
 
return False
 
return True
 
 
 
def group_exists(groupname):
 
try:
 
grp.getgrnam(groupname)
 
except KeyError:
 
return False
 
return True
 
 
 
if __name__ == "__main__":
 
parser = argparse.ArgumentParser(description="Group management script")
 
parser.add_argument(
 
"-g", "--group", required=True, help="The Group to add the user(s)"
 
)
 
parser.add_argument(
 
"users",
 
metavar="USER",
 
nargs="+",
 
help="User(s) to be add to the group",
 
)
 
args = parser.parse_args()
 
 
executed_by = os.getenv("USER")
 
 
exist_users = []
 
miss = False
 
 
# Check if all of the users exist
 
for user in args.users:
 
if not user_exists(user):
 
print(f"{user} does not exist.", file=sys.stderr)
 
miss = True
 
else:
 
exist_users.append(user)
 
 
# Check if the group exists
 
if not group_exists(args.group):
 
print(f"{args.group} does not exist.", file=sys.stderr)
 
miss = True
 
 
if miss:
 
print("A user and/or group does not exist.", file=sys.stderr)
 
print("Abort.", file=sys.stderr)
 
exit(1)
Loading