私の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アクセス権があり、制限なくルートに切り替えることができます。
$ sudo su
root@ip-x-x-x-x:/home/ubuntu#
rootユーザーするアカウントにパスワードがあります。
sudo
新しいユーザーを追加してsudoを使用するには、この新しいユーザーをグループに追加する必要があることを確認しました。
それでは、私のユーザーにubuntu
無料のrootアクセス権があるのはなぜですか?
答え1
ファイルの末尾付近/末尾にこの行が表示されますか/etc/sudoers
?
#includedir /etc/sudoers.d
これにより、ディレクトリ内のファイルがロードされ、ファイルの一部として/etc/sudoers.d
処理されます。/etc/sudoers
この行の上のコメント付きの行が示すように、sudoersファイルのマニュアルページでは、このディレクティブがどのように機能するかについて詳しく説明します#includedir
。
/etc/sudoers.d
ディレクトリ内のファイルを見ると、ubuntu
ユーザーにコマンドを呼び出す権限を与えるエントリを見つけることができますroot
。