diff --git a/esgd.py b/esgd.py index 3948d35..8bb6024 100644 --- a/esgd.py +++ b/esgd.py @@ -193,10 +193,15 @@ location = "/tmp/test" if __name__ == "__main__": switchgrp = grp.getgrnam("nobody").gr_gid switchusr = pwd.getpwnam("nobody").pw_uid - with socketserver.TCPServer((host, port), GopherHandler) as server: - os.setgid(switchgrp) - os.seteuid(switchusr) - log.log("switch user successful") - os.chdir(location) - log.log("change directory successful") - server.serve_forever() + try: + with socketserver.TCPServer((host, port), GopherHandler) as server: + os.setgid(switchgrp) + os.seteuid(switchusr) + log.log("switch user successful") + os.chdir(location) + log.log("change directory successful") + server.serve_forever() + except PermissionError: + log.error("invalid permissions") + except OSError: + log.error("address already in use")