![sudo:无法执行...错误地址 - 它是什么以及如何修复它?](https://linux22.com/image/650161/sudo%EF%BC%9A%E6%97%A0%E6%B3%95%E6%89%A7%E8%A1%8C...%E9%94%99%E8%AF%AF%E5%9C%B0%E5%9D%80%20-%20%E5%AE%83%E6%98%AF%E4%BB%80%E4%B9%88%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%E5%AE%83%EF%BC%9F.png)
我有一组脚本,可以在执行相当通用的 NetRestore 映像后完成客户端机器部署。
主脚本在 root 权限下运行,然后使用以下命令调用另一个“用户”脚本sudo -iu $PROPER_USER ...
问题是,sudo 在此步骤失败,并且实际上没有执行脚本。我收到此错误:
sudo: unable to execute /bin/bash: Bad address
这是什么意思?我该如何解决这个问题?我想到的一件事是,我在脚本中早些时候更改了主机名,使用networksetup -setcomputername ...
答案1
别在意网络了。网络根本不好用。
该Bad address
消息来自内核,表明该进程试图打开不存在的终端(pty/tty)。
我不确定为什么添加sleep
可以修复该问题(不可靠),但回到我的脚本的无睡眠版本并添加:
Defaults !requiretty
/etc/sudoers
迄今为止的工作。
干杯!