管理者以外のユーザーとしてログインしているときでも、Sudo bash
またはSudo -s
、システムはパスワードを要求しません。コマンド履歴で、以前にSudo
のパスワードを入力していません(つまり、Sudo
はユーザー資格情報をキャッシュしなかったため、このセッションで再度パスワードを要求されない可能性があります)。
なぜこの奇妙な動作ですか?また、すべてのSudo
およびsu
コマンドに対応するパスワードが必要であることを確認するにはどうすればよいですか?そして、どのユーザーもrootパスワードを入力せずにroot権限を取得できないことを厳密に保証する方法は?
これが私の/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 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
ALL ALL=(ALL) NOPASSWD:ALL
これは、/etc/sudoers
ファイルの最後の行が原因です。
ALL ALL=(ALL) NOPASSWD:ALL
...「すべてのユーザーがパスワードなしでルートとしてすべてのコマンドを実行できる」ことを意味します。
その行がどのようにそこに入ったのかわかりませんが、削除すると通常の動作に戻ります。 注:編集にvisudo
を使用して、そこで構文エラーが発生しないようにします。つまり、コマンドを実行します。
Sudo visudo
ポップアップするエディターを使用してファイルを編集します。