以下/etc/sudoers
条目在 Mac OS 10.7 下有效,但在 10.8 下会提示输入密码:
username ALL=NOPASSWD:/usr/libexec/dovecot/deliver
我估计 Apple 已经升级到了较新的 sudo;10.8 之前的版本是 1.7.4p6,但似乎仍不是最新的。不幸的是,目前似乎有 sudo 更新日志的每个网站都无法访问。
有人能告诉我正确的语法,以允许用户username
在 Mac OS 10.8 上通过 sudo 运行 deliver 而无需提供密码吗?此更改阻止任何电子邮件通过 procmail 传递,这不是 100% 理想的!
答案1
在输入完这些之后,更多的实验得出:
username ALL = NOPASSWD: /usr/libexec/dovecot/deliver
不确定什么时候开始需要空格……
(高级学生还会注意到 deliver 现在被称为 dovecot-lda,并且位于 /Applications/Server.app/Contents/ServerRoot/usr/libexec/dovecot 而不是 /usr/libexec/dovecot!)
答案2
我也无法让 NOPASSWD 关键字在 Mac OS X 10.8.x 上工作。它总是要求我输入密码。事实证明,这是由于用户名与 NOPASSWD 规范有多个匹配项。
我的 sudoers 文件有:
admin1 ALL=(ALL) NOPASSWD: ALL
%admin ALL=(ALL) ALL
由于 admin1 也属于“admin”组,因此第二个规范是控制用户 admin1 密码使用的规范。此功能在手册页顶部的描述部分的第二段中进行了描述。
一旦我切换了条目的顺序,用户 admin1 就不需要密码来运行 sudo 命令。