Ubuntu

(Ubuntu) 非 root 使用者具有 root 訪問權限,但不在 sudo 組中

  • September 24, 2022

我的 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#

root 使用者的帳戶確實有密碼。

我添加了一個新使用者,並確認必須將這個新使用者添加到組sudo中才能使用 sudo。

那麼,為什麼我的使用者ubuntu有免費的 root 訪問權限?

您是否在文件末尾/附近看到這條線/etc/sudoers

#includedir /etc/sudoers.d

這會載入目錄中存在的/etc/sudoers.d文件,將它們視為/etc/sudoers文件的一部分。正如該行上方的註釋行所示,sudoers 文件的手冊頁解釋了該#includedir指令如何工作的全部細節。

查看目錄中的文件/etc/sudoers.d,您會發現授予ubuntu使用者呼叫命令權限的條目為root.

引用自:https://unix.stackexchange.com/questions/718498