这是针对 12.04 ec2 实例的。
在手册页中,它说默认应该是使用 sudo 时需要密码。我以为通过设置 ubuntu 的帐户密码(如果未设置)可能会在使用 sudo 时开始提示我输入密码,但是当我使用 passwd 命令时,它要求我输入原始密码,然后才允许我更改它。因此,即使它似乎已经设置好了,它也没有提示我输入 sudo 密码,在我使用 sudo 覆盖并更改 ubuntu 帐户密码后,它仍然没有要求输入 sudo 密码。
无论如何,我不确定这些细节到底有多重要。这是我的 sudoers 文件:
#
# 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 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
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
在我遇到的所有例子中,人们都不知道为什么他们有无密码的 sudo 设置,这似乎是因为 sudoers 文件中有某种明确的“NOPASSWD:ALL”行(我的没有)。我尝试这样做:
%admin ALL:(ALL) PASSWD: ALL
但没有帮助。
id输出:
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),110(netdev),111(admin)
答案1
用户ubuntu
让我认为这是某种实时环境。在实时环境中,用户ubuntu
无需密码即可sudo
访问,因为这是实时环境的目的。
在上述情况下,无密码sudo
访问在目录中的文件中定义/etc/sudoers.d/
,更确切地说/etc/sudoers.d/casper
包含以下内容:
ubuntu ALL=(ALL) NOPASSWD: ALL
所以我认为目录中有这样一个文件/etc/sudoers.d/
。(或者,如果您安装的是非标准的 ubuntu,则还有另一个具有相同用途的类似文件。)您必须删除该文件,或按照您喜欢的方式对其进行编辑。