В настоящее время я работаю над сценарием Python на виртуальной машине CentOs 8, я пытаюсь написать часть моего сценария python, который установит для них пароль пользователя без взаимодействия с пользователем. Я еще не нашел способ сделать это и пробовал различные методы, такие как:
subprocess.run(str('echo -e "password\npassword\npassword\n" | sudo -S passwd --stdin user'), shell=True, universal_newlines=True, check=True)
Но безрезультатно.
Я знаю, что это небезопасно (даже если это сработало), но в этом случае это действительно не имеет значения, поэтому, кроме безопасности, мне просто нужно заставить ее работать. Пароли - это просто примеры, показывающие код, поскольку я знаю, что он будет отклонен, если он будет использоваться в качестве фактических паролей.
Есть ли способ заставить скрипт запускаться от имени пользователя root вместо зарегистрированного -in user?
Делать то же самое, что и root пользователь, работает так:
subprocess.run(str('echo -e "password\npassword" | passwd --stdin ' + userName), shell=True, universal_newlines=True, check=True)
только когда я добавляю часть sudo, я не могу автоматически вставить пароль sudo
Если я делаю это прямо из терминала, это работает:
echo -e "password\npassword\npassowrd" | sudo -S passwd --stdin dave