使用sudo为特定用户授予特定脚本的无密码权限

我有一台运行Debian Squeeze并带有最新更新的服务器。 我试图设置sudoers文件,以允许特定用户的特定shell脚本的用户www-data执行。 我用visudo为此添加了这一行:

 www-data ALL=(img) NOPASSWD: /path/to/script/imgsync.sh 

然后我试图把它称为用户www-data(我从根到www数据第一):

 sudo -u img /path/to/script/imgsync.sh 

令我惊讶的是,它仍然要求input密码:

 [sudo] password for www-data: 

我期待NOPASSWD:照顾这个?

真让我困惑的是:我有另一台服务器使用相同的设置,在没有密码的情况下工作。 另外,我在同样的服务器上也有类似的权限,也没有密码的工作。

我甚至添加了该行

 Defaults:www-data !authenticate 

与visudo(只是为了testing,我不想这个)。 然后,当我再次尝试时,我得到了(矛盾的)错误消息:

对不起,用户www-data不允许执行'/path/to/script/imgsync.sh'作为img的servername。

我怎样才能让它执行,而不必提供密码(并没有更多的权利,万维网数据)?

事实certificate,上述设置没有任何问题。 在我的testing中,脚本遇到了一个用户img缺less权限的目录,导致如上所述的结果。

尽pipe现在一切正常,但我仍然对dash (默认非loginshell)无用的错误消息/行为感到有些不满。

我会离开post,可能对别人有帮助。