我有一个脚本(由我的前任编写),它成功地在运行OS X 10.6的Mac上编辑了sudoers文件;它的代码如下:
#!/bin/sh
if [ -z "$1" ]; then
export EDITOR=$0 && sudo -E visudo
else
echo "%staff ALL=NOPASSWD: /sbin/shutdown" >> $1
fi
然而,在运行Mac 10.7的计算机上,它不会将该行添加到sudoers文件中,而是“交互式”地启动了visudo。它似乎在任何时候都没有进入“else”子句。我怀疑第4行的适当语法(“export...”)已经改变,但我似乎找不到具体信息。有什么建议吗?
由于某些人可能会问:我们有一个复杂(而且可以说有点傻,但必要的)的强制重启计划来进行补丁安装。如果用户在最后期限前没有自愿重新启动,则应用程序将启动5分钟倒计时(或立即重新启动选项),此时将发出“sudo shutdown -r now”命令。出于我的健康考虑,请不要让我为这种安排的性质辩护。这超出了我的控制范围。