File: stub-su.py

package info (click to toggle)
python-mitogen 0.3.25~a1-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,204 kB
  • sloc: python: 21,984; sh: 183; makefile: 74; perl: 19; ansic: 18
file content (23 lines) | stat: -rwxr-xr-x 687 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python3

import json
import os
import sys
import time

# #363: old input loop would fail to spot auth failure because of scheduling
# vs. su calling write() twice.
if 'DO_SLOW_AUTH_FAILURE' in os.environ:
    os.write(2, u'su: '.encode())
    time.sleep(0.5)
    os.write(2, u'incorrect password\n'.encode())
    os._exit(1)


os.environ['ORIGINAL_ARGV'] = json.dumps(sys.argv)
os.environ['THIS_IS_STUB_SU'] = '1'

# 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.
os.execlp('sh', 'sh', '-c', sys.argv[sys.argv.index('-c') + 1])