问题描述
在/etc/sudoers
中没有配置的情况下,Ubuntu Server 12.04的AWS映像上的ubuntu
用户如何为所有命令使用无密码sudo
?
我在亚马逊上使用Ubuntu服务器12.04。我想添加一个与默认Ubuntu用户具有相同行为的新用户。具体而言,我希望这个新用户无密码sudo
。
所以我添加了一个新用户并且去编辑/etc/sudoers
(当然使用visudo)。通过阅读该文件,似乎默认ubuntu
用户从admin
组的成员那里获得了无密码sudo
。所以我添加了我的新用户。哪些不起作用。然后我尝试将NOPASSWD
指令添加到sudoers
。其中也没有工作。
无论如何,现在我只是好奇。 ubuntu
用户如果在/etc/sudoers
中没有定义它们,将如何获得无密码权限。什么是允许这个的机制?
最佳解决办法
好的,我已经发现了答案,所以不妨把它放在这里以求完整。在/etc/sudoers
的最后,我认为这只是一个评论:
#includedir /etc/sudoers.d
但是,这实际上包含该目录的内容。里面是文件/etc/sudoers.d/90-cloudimg-ubuntu
。其中有预期的内容
# ubuntu user is default user in cloud-images.
# It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL
这就是默认ubuntu用户的sudo配置所在的地方。
你应该使用visudo编辑这个文件。以下命令将允许您使用visudo编辑正确的文件。
sudo visudo -f /etc/sudoers.d/90-cloudimg-ubuntu
并添加一行:
aychedee ALL=(ALL) NOPASSWD:ALL
最后。
次佳解决办法
我发现为了在多台服务器上轻松复制此行为,最直接的事情是做到以下几点:
sudo visudo
改变这一行:
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
到这一行:
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD:ALL
并将其移至此行下:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
你现在应该有这个:
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD:ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
那么对于每个需要使用sudo访问的用户,请输入密码:
sudo adduser <user> sudo
并为每个需要使用sudo访问的用户提供无密码:
sudo adduser <user> admin
最后,运行这个:
sudo service sudo restart
就是这样!
编辑:您可能需要添加管理员组,因为我认为它默认情况下不存在。
sudo groupadd admin
您还可以通过以下命令将deafult AWS ubuntu
用户添加到admin
组:
sudo usermod ubuntu -g admin