#!/usr/bin/env python3 import sys import getpass from enum import Enum, unique from subprocess import call @unique class State(Enum): NEW = 1 SECOND = 2 THIRD = 3 GOOD = 4 FAIL = 5 class Su: def __init__(self): self.state = State.NEW self.read = None self.password = 'ilovekde' def process(self): if self.state == State.NEW: self.read = getpass.getpass('Password: ') if self.read == self.password: self.state = State.GOOD call([sys.argv[3]]) exit(0) else: self.state = State.FAIL print("su: Authentication failure") exit(1) su = Su() while True: su.process()