#!/usr/bin/env python import argparse import os import sys def main(): ap = argparse.ArgumentParser() ap.add_argument("-a", default="qmail-authuser", dest="pam") ap.add_argument("fd", type=int) ap.add_argument("prog") ap.add_argument("args", nargs='*') vals = ap.parse_args() if vals.fd < 3: raise ValueError(f"fd({fd}) must be 3 or greater") if vals.fd != 3: os.dup2(vals.fd, 3) os.close(vals.fd) os.execvp(vals.pam, [vals.pam, vals.prog] + vals.args) raise ValueError("should not be reachable") if __name__ == '__main__': main()