我有一个脚本(由我的前任编写),它成功地在运行 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
但是,当在运行 10.7 的 Mac 上运行时,它不会将该行添加到 sudoers 文件中,而是“以交互方式”启动 visudo。它似乎在任何时候都没有进入“else”子句。我怀疑第 4 行(“export ...”)的适当语法已经改变,但我似乎不知道如何。任何指针?
既然有人会问:我们有一个精心设计的(诚然,有些愚蠢,但必然如此)强制重启的修补时间表。如果用户在截止日期前没有故意重启,应用程序将在 5 分钟倒计时启动(或立即重启的选项),此时发出“sudo shutdown -r now”命令。为了我的理智,请不要让我为这种安排的性质辩护。这是我无法控制的。