Как проверить что пароль от 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'
→ Ссылка