Я пытаюсь создать сценарий входа в систему, используя python, который попытается войти в систему с помощью команды оболочки login -q MyUsername
и попробовать несколько паролей. Я уже могу сгенерировать необходимые пароли, но когда я пытаюсь войти в систему, используя приведенный ниже код, команда login
отвечает, что я ввел неправильное имя пользователя, хотя я знаю, что пишу его правильно. Чтобы уточнить: я создаю сценарий для входа в систему с помощью команды оболочки login
, когда я уже знаю имя пользователя, но не пароль. В приведенном ниже коде показано, что я делаю (перебор паролей).
for password in passwordList:
p = Popen(["login","-q","MyUsername"], stdin=PIPE, stdout=PIPE) #The username MyUsername is correct, 100% sure
print repr(p)
stdout_value = p.communicate(password)[0] #
print(str(stdout_value))
if repr(stdout_value).startswith('Login incorrect\nlogin: '):
print "ERROR"
else:
print "GOOD"
break
Если я ввожу команду login -q MyUsername
непосредственно в терминал, мне будет предложено ввести мой пароль, тогда как использование сценария возвращает «Неверный вход в систему». Я также запутался, как работает Popen
и как писать в stdout
.
Заранее спасибо!
(Другой вопрос: есть ли более простой способ сделать это? (Попытка войти в систему с использованием нескольких паролей) Я использую login
, потому что он не имеет блокировки, и пользовательские данные не могут быть доступны, если это не суперпользователь).
/etc/passwd
) в ответе? 27.10.2014