У меня есть набор сценариев, которые завершают развертывание клиентской машины после выполнения довольно общего образа NetRestore.
Основной сценарий запускается с правами root, а затем вызывает другой, «пользовательский» сценарий с sudo -iu $PROPER_USER ...
Проблема в том, что sudo не работает на этом этапе и фактически не выполняет скрипт. Я получаю такую ошибку:
sudo: unable to execute /bin/bash: Bad address
Что это значит и как это исправить? На ум приходит одна вещь: я меняю имя хоста ранее в скрипте, используя networksetup -setcomputername ...
Неважно о сети. Это было даже не близко.
В Bad address
Сообщение приходит от ядра и указывает, что процесс попытался открыть терминал (pty / tty), который не существует.
Я не уверен, зачем добавлять sleep
исправили проблему (ненадежно), но вернулись к версии моих скриптов без сна и добавили:
Defaults !requiretty
к /etc/sudoers
пока работает.
Ура!