Как проверить что пароль от sudo верен?
В моем python скрипте есть строка; я хочу проверить, что она является верным паролем для sudo, чтобы запустить системную команду. Как это сделать?
Ответы (2 шт):
Автор решения: BigCubeCat
→ Ссылка
sudo -v решает эту задачу. Например
from subprocess import PIPE, Popen
password = input()
proc = Popen(["sudo", "-v"], stdout=PIPE, stderr=PIPE, stdin=PIPE).communicate(input=password + "\n\n\n")
if len(popen[1].decode()) == 0:
print("password correct")
else:
print("Forbidden")
Автор решения: Дмитрий Терета
→ Ссылка
Пакет sshpass спасает от трудных архитектур с subprocess:
def sudo_is_true(password):
answer = os.popen(f'sshpass -p {password} sudo echo "hello"').read().strip()
return answer == 'hello'