我在 AWS 上有一个 ubuntu 实例。
获得 ssh 登录后,我能够使用sudo su
命令更改为 root 密码。
出于安全原因,我想更改 root 密码。因此我尝试了以下操作:
root@email:/home/ubuntu# sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@email:/home/ubuntu#
当我尝试更改密码后sudo su
,它不会要求输入密码
ubuntu@email:~$ sudo su
root@email:/home/ubuntu#
然而,当我仅尝试时su
,它会提示一个:
ubuntu@email:~$ su
Password:
如何实现安全或者设置密码sudo su
?
以下是 sudoers (visudo) 的详细信息
#
# 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:/snap/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
答案1
sudoers
文件中的这一行
#includedir /etc/sudoers.d
使其包含/etc/sudoers.d/
目录中的其他文件。可能看起来该行被注释掉了,但事实并非如此;该指令以#includedir
开头。其中一个包含的文件可能设置了导致问题的#
规则。NOPASSWD
在更改某些内容之前,请确保您的普通用户拥有有效的非空密码。从这个答案:
sudo
即使您没有密码也会要求输入密码,并且不会接受空密码。
如有疑问,请passwd
为您的常规用户调用并设置一个全新的密码。
此命令应该告诉您需要检查哪些文件:
sudo grep -r NOPASSWD /etc/sudoers.d/
您要找的行可能看起来像这样:
ubuntu ALL=(ALL) NOPASSWD:ALL
将其注释掉 ( # ubuntu ALL=...
)。比较这个答案。