diff --git a/group_manager.py b/group_manager.py
new file mode 100755
index 0000000000000000000000000000000000000000..2332f413ec07e1a71d83a9d9001abd9c59a722ca
--- /dev/null
+++ b/group_manager.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python3
+import argparse
+import grp
+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()
+
+    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)