#!/usr/bin/env python # Using a Python script to run sudo to run a Python script is a bit # silly, but it lets us use rpki.autoconf to locate sudo, lets us # avoid needing a custom setuid wrapper, lets us avoid another pass # through the adventures of shell quoting and tokenization, and # generally is just a lot simpler to implement correctly. # # OK, it's probably a few milliseconds slower. Big deal. if __name__ == "__main__": try: import os import sys import rpki.autoconf argv = [rpki.autoconf.SUDO, "-u", rpki.autoconf.RPKI_USER, sys.executable, "-c", "import rpki.rpkic; rpki.rpkic.main()"] os.execv(rpki.autoconf.SUDO, argv + sys.argv[1:]) sys.exit("rpkic startup failure, no exception so don't know why, sorry") except Exception as e: sys.exit("Couldn't exec sudo python rpkic: {!s}".format(e))