1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#!/usr/bin/env python3
import json
import os
import subprocess
import sys
os.environ['ORIGINAL_ARGV'] = json.dumps(sys.argv)
os.environ['THIS_IS_STUB_SUDO'] = '1'
if os.environ.get('PREHISTORIC_SUDO'):
# issue #481: old versions of sudo did in fact use execve, thus we must
# have TTY handle preservation in core.py.
os.execv(sys.executable, sys.argv[sys.argv.index('--') + 1:])
else:
# This must be a child process and not exec() since Mitogen replaces its
# stderr descriptor, causing the last user of the slave PTY to close it,
# resulting in the master side indicating EIO.
subprocess.check_call(sys.argv[sys.argv.index('--') + 1:])
|