blob: 408ff1a37a9f1a0e80faf6c86eb03442ee313365 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/usr/bin/env python3
import argparse
import os
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({vals.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()
|