这个问题网上已经回答过很多次了但这些答案对我来说都没有用。
问题
使用私钥访问远程计算机,我通常需要 root 权限,这意味着要编写很长的密码,而且很烦人。
为了拥有sudo su
,我尝试了以下步骤:
- 确保该行
<user> ALL=(ALL) NOPASSWD: ALL
位于 /etc/sudoers 中 - 确保用户位于
sudo
用户组中:$groups <user>
-> sudo
但尝试sudo su
只会提示我输入自己的密码:[sudo] password for <user>:
问题
如何实现无密码sudo su
?
答案1
我经常把它放在线下方
# User privilege specification
root ALL=(ALL:ALL) ALL
+++ myuser ALL=(ALL) NOPASSWD: ALL
更好的方法是使用 /etc/sudoers.d 中自己的文件和上面的行。
如果您想使用组策略,则需要修改您的组的行
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
否则,组策略将覆盖您的用户策略,并且系统将要求您输入密码。
还有另一个提示:
请不要使用“sudo su”。而是使用sudo su -
或sudo -i
.这将卸载您的环境并加载 root 环境,避免使用 root 帐户中的错误环境变量。
答案2
您的 sudoers 文件已经授予您运行(或可能是任何命令)的能力sudo su
,但不包含该NOPASSWD:
选项。
sudoers 文件中的顺序很重要:最后一场比赛获胜。
您可以用来sudo -l
列出Defaults
您的用户帐户的所有 sudo 选项和所有允许的命令。