我已将常规帐户名称 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