禁用 sudo 提示但不禁用 sudo 密码

禁用 sudo 提示但不禁用 sudo 密码

我想这是相当棘手的,或者至少不是经常需要的。

我是什么不在此之后是:

使用以下方式禁用密码

 user    ALL=(ALL) NOPASSWD:    ALL

或者类似的技巧。

我知道如何从中读取 sudo 密码stdin,并且这工作正常,但您仍然会收到提示:

$ echo $PW | sudo -S whoami
[sudo] password for oz123: root

手册页显示我可以使用-p

$ echo $PW | sudo -S -p "foo " whoami
foo root

$ echo $PW | sudo -S -p " " whoami
 root

只需一个空格即可。

传递空字符串似乎不起作用......

$ echo $PW | sudo -S -p "" whoami
[sudo] password for oz123: root

所以问题是:

如何将空字符串定义为有效值-p

更新-sudo 版本

$ sudo --version
Sudo version 1.8.21p2
Sudoers policy plugin version 1.8.21p2
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.21p2

(在 Ubuntu 18.04 上)

答案1

看来,新版本的 sudo 已经解决了这个问题:

在我的 Gentoo 笔记本电脑上:

$ sudo -k
$ echo "$PW" | sudo -S -p "" whoami
root

$ sudo --version
Sudo version 1.8.25p1
Sudoers policy plugin version 1.8.25p1
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.25p1

在较旧的 Ubuntu 机器上,你可以简单地将提示重定向到/dev/null

sudo -S 2>/dev/null whoami

相关内容