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分のカウントダウン(またはすぐに再起動するオプション)で起動し、その時点で「sudoshutdown-rnow」コマンドが発行されます。私の正気のために、この取り決めの性質を擁護するように私に頼まないでください。それは私のコントロールの外です。