我使用的是 Centos 版本:
[sysadmin@backup-srv ~]$ cat /etc/redhat-release
CentOS release 6.4 (Final)
我正在使用这个 sudo 版本:
[sysadmin@backup-srv ~]$ sudo -V
Sudo version 1.8.6p3
Sudoers policy plugin version 1.8.6p3
Sudoers file grammar version 42
Sudoers I/O plugin version 1.8.6p3
我尝试为 sudo 设置通知邮件,使用命令 visudo 在 sudo 文件底部添加了此条目,但出现以下语法错误:
Defaults mailto "[email protected]"
Defaults mailfrom "[email protected]
Defaults mail_always on
Defaults mailsub “*** Command run via sudo on %h ***”
Defaults mail_badpass on
Defaults badpass_message "Please Provide Correct Password"
Defaults !lecture,tty_tickets,!fqdn,!syslog
Defaults logfile=/var/log/sudo.log
这是我在保存 sudo 配置文件时遇到的错误:
121 Defaults mailto "[email protected]"
122 Defaults mailfrom "[email protected]
123 Defaults mail_always on
124 Defaults mailsub “*** Command run via sudo on %h ***”
125 Defaults mail_badpass on
126 Defaults badpass_message "Please Provide Correct Password"
127 Defaults !lecture,tty_tickets,!fqdn,!syslog
128 Defaults logfile=/var/log/sudo.log
错误是:
visudo: >>> /etc/sudoers: syntax error near line 121 <<<
visudo: >>> /etc/sudoers: syntax error near line 121 <<<
现在做什么?如何为 Sudo 版本 1.8.6p3 设置邮件通知?
答案1
问题不在于您的第 121 行,而在于您的下一行,即您的 line 。您忘记了结尾的双撇号。好的版本是:mailfrom "[email protected]
mailfrom "[email protected]"
之所以在第 121 行而不是第 122 行出现语法错误,是因为 sudo 的语法分析器和文本编辑器使用了稍微不同的行排序。
答案2
我看到一个类似的错误,没有缺少双引号,并且使用相同版本的 sudo --1.8.6p3在分体6.5。
看起来 visudo 想要 equals 语法——
Defaults mailto = "[email protected]"
Defaults mail_always
指定
Defaults mailto "[email protected]"
Defaults mail_always on
导致两个条目都出现语法错误。