我有一套脚本,在执行相当通用的NetRestore映像后完成客户机部署。
主脚本以root权限运行,然后使用sudo -iu $PROPER_USER ...调用另一个“user”脚本sudo -iu $PROPER_USER ...
问题是,sudo在这一步失败,并没有真正执行脚本。 我得到这个错误:
sudo: unable to execute /bin/bash: Bad address
这是什么意思,我该如何解决这个问题? 有一点想到,我正在更改脚本中的主机名,使用networksetup -setcomputername ...
不要介意networking。 它甚至不是很接近。
Bad address信息来自内核,并指出一个进程试图打开一个不存在的terminal(pty / tty)。
我不知道为什么joinsleep解决了问题(不可靠),但回到我的脚本的非睡眠版本,并添加:
Defaults !requiretty
到/etc/sudoers到目前为止工作。
干杯!