使用 visudo 设置 sudo.conf askpass 变量时出现“语法错误”

使用 visudo 设置 sudo.conf askpass 变量时出现“语法错误”

我想为 sudo 设置 askpass 程序,我已创建/etc/sudoers.d/path-askpass包含以下内容的文件:

# Path to askpass program 

Path askpass /usr/bin/ssh-askpass

文件是用 编辑的visudo,它抱怨第 3 行的语法错误,而我没有在那里看到任何语法错误。

sudo 版本:

~$LANG=C sudo -V
Sudo version 1.8.10p3
Sudoers policy plugin version 1.8.10p3
Sudoers file grammar version 43
Sudoers I/O plugin version 1.8.10p3

答案1

你忘了=。试试这个方法:

Path askpass = /usr/bin/ssh-askpass

答案2

现在是 2022 年了,对于读到应该添加“=”的人,您可以尝试不添加它,并忽略错误消息。但也许可以用一种安全的方式做到这一点:

  1. 在另一个终端中,sudo su拥有 root 访问权限,以便在出现任何问题时可以恢复。
  2. 在 visudo 中,保存没有=,点击“Q”忽略警告并保存文件。
  3. 从非root终端尝试sudo -A systemctl status sshd或类似操作。

如果您请求的 askpass 可执行文件有效,那就太好了……您就大功告成了。否则,也许可以尝试 = 方法,或者找出您的 askpass 路径是否错误,或者您认为适合解决问题的任何方法。

对我来说,忽略警告是有效的。visudo 中似乎有一个错误,导致此行无法正确显示,至少在我的环境中如此。

如果更改后 sudo 无法再启动,请使用步骤 1 中建立的根会话来恢复文件。

相关内容