我遇到了一个语法争论问题sudo
,可能无法解决。
我知道我知道,OpenBSD 的新版本doas
比 更好sudo
,但它在 CentOS 7 上不可用或者洛奇 8。所以,我们会在一起待sudo
一段时间,女孩们,男孩们。
如果我添加以下行visudo -f /etc/sudoers.d/custom
,它就会起作用,并且visudo
不会抱怨它:
%[email protected] *=(root) NOPASSWD: /usr/bin/mount -a
但是,如果我添加以下内容:
%[email protected] *=(root) NOPASSWD: /usr/bin/mount -o remount,rw nfs-server.domain.com:/nfs3 /mnt/nfs3
然后visudo
不断用以下代码拒绝它:(
syntax error near line 41
实际上是第 41 行)。我尝试了上述各种替代方法。
有什么想法为什么,或者什么会起作用?
谢谢
答案1
解决方案是阅读,man sudoers
因为显然有些字符需要转义。奇怪的是,不起眼的逗号就是其中之一(通常不是敏感字符)。
提炼:
Note that the following characters must be escaped with a ‘\’
if they are used in command arguments: ‘,’, ‘:’, ‘=’, ‘\’.