![(Ubuntu)非 root 用户具有 root 访问权限,但不属于 sudo 组](https://linux22.com/image/211099/%EF%BC%88Ubuntu%EF%BC%89%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E5%85%B7%E6%9C%89%20root%20%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%EF%BC%8C%E4%BD%86%E4%B8%8D%E5%B1%9E%E4%BA%8E%20sudo%20%E7%BB%84.png)
我的 AWS EC2 实例上的用户具有不受限制的 sudo 访问权限,并且没有密码提示。这是 Ubuntu 20.04.4 LTS 虚拟机。
这是问题的示例:
~$ whoami
ubuntu
~$ groups
ubuntu
~$ sudo deluser ubuntu sudo
/usr/sbin/deluser: The user `ubuntu' is not a member of group `sudo'.
~$ sudo whoami
root
正如您所看到的,我已经将该用户从除他们自己的组 ( ubuntu
) 之外的所有组中删除。
这是我的/etc/sudoers
文件:
~$ sudo cat /etc/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 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
我注释掉了%admin
组条目以及刚刚测试的secure_path
条目。Defaults
我已重新启动计算机并以 身份重新登录ubuntu
。我仍然拥有 sudo 访问权限,并且可以不受限制地切换到 root 用户。
$ sudo su
root@ip-x-x-x-x:/home/ubuntu#
根用户做帐户有密码。
我添加了一个新用户,并确认必须将这个新用户添加到组中sudo
才能使用 sudo。
那么,为什么我的用户ubuntu
拥有免费 root 访问权限?
答案1
您在文件末尾附近/末尾看到这一行吗/etc/sudoers
?
#includedir /etc/sudoers.d
这会加载目录中存在的文件/etc/sudoers.d
,并将它们视为/etc/sudoers
文件的一部分。正如该行上方的注释行所示,sudoers 文件的手册页解释了该指令如何工作的完整细节#includedir
。
查看/etc/sudoers.d
目录中的文件,您将找到授予ubuntu
用户调用命令的权限的条目root
。