当前位置: 首页>>技术教程>>正文


如何运行没有密码的sudo命令?

, ,

问题描述

/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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/231.html,未经允许,请勿转载。