Мне нужен скрипт для выполнения команд sudo без запроса пароля. В следующих сценариях у меня есть странное Баш stdin
поведение:Выполнение команд bash автоматически при sudo не работает
[email protected]:~$ sudo -Si | echo "password"
password
[email protected]:~# exit
[email protected]:~$ sudo -Si | echo "password"
password
[sudo] password for rootname:
(пароль является корневой пароль на моей машине)
Почему пароль не запрашивается в первый раз, и был в второй (и всегда после этого)? Также я не понимаю, как работает stdin
в bash, где ошибка в моем коде?
Я знаю, что это очень плохая идея поместить пароль root в команду напрямую, но мне нужно, чтобы он выполнялся правильно.
У меня есть следующий вывод для сценария: ' имя пользователя @ имя пользователя-ноутбук: ~ $ echo "пароль" | sudo -Si' '[sudo] пароль для имени пользователя: stdin: не является tty' – Everv0id
Хм. В этом случае вам придется использовать псевдо-TTY. Для этого требуется либо программирование на языке C, либо существующий скриптовый инструмент (я знаю, что есть один, но я не знаю его имени). –
инструмент называется "ожидать" –