Вы получаете эту ошибку, потому что ваша команда сначала отправляет пароль клиенту cli без запроса его. Поэтому bash будет интерпретировать ее как команду, которая, очевидно, не может быть выполнена.
Лучше сделать os.system('sudo command')
и вызвать скрипт как root или через sudo. Это обеспечит наличие необходимых привилегий в скрипте сразу во время выполнения.
Еще одна причина, по которой вы определенно хотите воздерживаться от того, что вы делаете, - это необходимость иметь пароль sudo для вашей машины, записанный в сценарий в виде простого текста. Никогда не делай этого. Это зло.
Если нет другого пути, вы можете заставить sudo выполнить команду без запроса пароля, добавив директивы NOPASSWD
к /etc/sudoers
с помощью редактора visudo
(никогда не используйте ничего другого), например:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
Но если вы уверены, что знаете, что это открывает выполнение этой команды для любого пользователя в системе без повышенных прав. Это может быть огромной угрозой безопасности.