禁用密码登录但保留 sudo -v?

禁用密码登录但保留 sudo -v?

我使用的是 Raspberry Pi,但我认为这个问题不是特定于 Raspberry Pi 操作系统的。

我仅使用 SSH 密钥以用户 pi 身份登录。

我有一个脚本该调用sudo -v当前要求用户输入密码pi

我想让这一步变得简单,所以最好让它根本不要求密码或有一个非常简单的密码(如"pi")。

但我当然不想通过 SSH 使用如此简单的密码公开用户帐户。

我已经有一个文件包含/etc/sudoers.dpi ALL=(ALL) NOPASSWD: ALL它不会禁用 的密码问题sudo -v

我有什么选择?


sudo -l编辑:按照评论中的要求输出:

pi@klipper:~ $ sudo -l
Matching Defaults entries for pi on klipper:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, env_keep+=NO_AT_BRIDGE, env_keep+="http_proxy HTTP_PROXY", env_keep+="https_proxy HTTPS_PROXY", env_keep+="ftp_proxy FTP_PROXY",
    env_keep+=RSYNC_PROXY, env_keep+="no_proxy NO_PROXY"

User pi may run the following commands on klipper:
    (ALL : ALL) ALL
    (ALL) NOPASSWD: ALL

答案1

删除(或者更好地注释掉)两个解除授权行中的第一个,sudoers适用于pi

(ALL : ALL) ALL
(ALL) NOPASSWD: ALL

这个不需要的密码没有标志NOPASSWD,因此系统会提示您输入密码。 (适用第一个匹配规则。)

一般来说,我建议你打开两个shell。首先使用sudo -s以获得 root shell,并且在确认您的编辑没有阻止您使用 之前不要关闭它sudo。使用第二个进行测试。始终用于visudo编辑sudoers文件。


我应该指出,如果第一行对应于组定义

%sudo  ALL=(ALL:ALL) ALL

如果没有充分的理由,您不应将其注释掉,因为它允许该组成员的任何人sudo使用该sudo命令。

要么修改它,以便该组的所有成员都不需要提供密码,要么将您自己的用户行放在它上面,以便它首先匹配:

pi ALL=(ALL:ALL) NOPASSWD: ALL

相关内容