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