要求输入 sudo install 命令的密码

要求输入 sudo install 命令的密码

我已将常规帐户名称 debian8 写入 sudoers 文件中。

echo "debian8  ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers

重新启动并安装一些软件包。

sudo  dpkg -i Brackets*.deb
[sudo] password for debian8: 
Selecting previously unselected package brackets.
(Reading database ... 85361 files and directories currently installed.)

如何执行命令sudo dpkg -i 括号*.deb直接,不要求输入密码?

为什么如下设置配置没有用?

sudo visudo -f /etc/sudoers.d/myRules
debian8   ALL=NOPASSWD: ALL

我用以下方法解决了这个问题。

sudo visudo -f /etc/sudoers
debian8   ALL=NOPASSWD: ALL

为什么在 /etc/sudoers.d/myRules 中编辑没有用?

答案1

您可能不应该像这样直接编辑 /etc/sudoers 文件。相反,可以:

1.) 以 root 身份使用命令“visudo”来编辑文件
2.) 更好的是,将配置更改添加为单独文件中的覆盖,如下所示:

sudo visudo -f /etc/sudoers.d/myRules

现在,在打开的文本编辑器中输入以下行:

debian8   ALL=NOPASSWD: ALL

现在,当然您可以使用 Ctrl-O 写入文件,然后使用 Ctrl-X 退出(如果您的 visudo 打开 Nano,我的就是这样)。

希望这对您有帮助。尽情享受吧!

答案2

绝不,曾经运行诸如echo something >> /etc/sudoers.一个小错字,任何类型的错误,都可能会破坏sudo你的系统。然后,您必须启动到实时会话,安装本地磁盘并撤消您破坏的内容。这是一件很痛苦的事情,有一些专门设计的工具可以帮助您避免此类问题。所以总是使用sudo visudo.如果您不熟悉 vim 编辑器,您可以nano通过设置变量来使用 或任何其他编辑器EDITOR

sudo EDITOR=/usr/bin/nano  visudo

现在,您尝试的第一个命令 -echo虽然很危险,但应该有效。如果没有,您可能运行了稍微不同的东西。您可能运行命令为debian8而不是root

如果您运行sudo visudo并添加此行,它将按预期工作:

debian8  ALL=(ALL:ALL) NOPASSWD:ALL

并且无需重新启动,只需关闭即可visudo。至于为什么添加规则/etc/sudoers.d/myRules失败,那是因为您还需要告诉sudoers包含该目录中的任何文件。在我的 Arch 系统上,相关部分被注释掉了:

$ sudo grep 'sudoers\.d' /etc/sudoers
## Read drop-in files from /etc/sudoers.d
#includedir /etc/sudoers.d

因此,要包含在 中设置的规则/etc/sudoers.d,您需要sudo visudo再次运行并更改(或插入)上面的行,使它们看起来像这样:

## Read drop-in files from /etc/sudoers.d
includedir /etc/sudoers.d

相关内容