"""User existence and attribute probes.""" import pwd import grp def user_exists(username: str) -> bool: """Check if a system user exists.""" try: pwd.getpwnam(username) return True except KeyError: return False def user_uid(username: str) -> int | None: try: return pwd.getpwnam(username).pw_uid except KeyError: return None def user_gid(username: str) -> int | None: try: return pwd.getpwnam(username).pw_gid except KeyError: return None def user_in_group(username: str, groupname: str) -> bool: """Check if a user is a member of a group.""" try: group = grp.getgrnam(groupname) return username in group.gr_mem except KeyError: return False def user_shell(username: str) -> str | None: try: return pwd.getpwnam(username).pw_shell except KeyError: return None