Предоставить пароль SU в сценарии bash, в скрипте?

Цель состоит в том, чтобы перезагрузить компьютер, если он не получил команду abort от пользователя. Проблема заключается в том, что как настроить терминалы, пользователь должен предоставить пароль SU для shutdown , init , reboot и т. Д. Команд. Нам интересно, возможно ли предоставить пароль в скрипте bash, возможно, используя stdin. то есть:

 #!/bin/bash # (script) echo "Terminal will restart in 60s, Ctrl+C to cancel." sleep 60 su - root -c "init 6" < "password" 

Мы собираемся попробовать поместить пароль в файл и stdin.

Изменить: sudo и expect будут, поскольку решения, связанные с их установкой, будут невозможны из-за большого количества документов для разрешения и ограниченного времени. Также мы хотели бы использовать init 6 или shutdown -r вместо reboot .

3 Solutions collect form web for “Предоставить пароль SU в сценарии bash, в скрипте?”

Вы можете настроить sudo чтобы разрешить любому пользователю выполнять определенные вами команды, как root, без ввода пароля. См. Статью «Ошибка сервера» для описания того, как настроить sudo .

Затем в вашем скрипте используйте sudo, а не su:

Перезагрузка sudo

AFAIK вы не можете делать то, о чем просите. Когда вы используете stdin с < , пароль будет вводиться через stdin задолго до того, как оболочка действительно запросит пароль. Вы должны попробовать и использовать sudo. Если это не так, лучше всего chmod reboot и предоставить себе права на выполнение.

Вы можете сделать это с помощью socat:

 user@host$ (sleep 1; echo SuperSecr3t) | socat - EXEC:'su -c id',pty Password: ### No input here, just wait 1sec uid=0(root) gid=0(root) groups=0(root) 
Interesting Posts

Windows XP расширенный или клонированный рабочий стол больше не работает

Отправить электронное письмо в будущем

Сделать существующую VM неизменяемой

Thunderbird 3: посмотреть размер папки?

Windows Vista не распознает CD-привод после установки iTunes

Как удалить раздел восстановления в Windows 8.1

XP WiFi: «Windows не удалось найти сертификат для входа в сеть»

Сетевое копирование на Windows 7 Общий доступ к файлам не работает и убивает сетевое подключение

Как перечислить файлы рекурсивно и отсортировать их по времени модификации?

Мой жесткий диск на грани сбоя?

Автоматически загружать файлы в Internet Explorer без запроса на сохранение / отмену?

Cloned Linux не распознает пространство нового флеш-накопителя?

Du и ls сообщают о разном размере каталога?

Попытка запустить средство создания медиа – «Что-то случилось 0x80070002 – 0x20016»

Что такое ::: в локальном адресе вывода netstat?

Давайте будем гением компьютера.