私たちはcentos 6.10を使用してサーバーを設定していますが、sudoを使用してユーザーを設定すると、sudoはパスワードを要求しないことがわかりました。同じ(フル)sudo権限を持つ別のユーザーを設定すると、パスワードの入力を求められます。
ユーザーを明示的に設定し、同じ動作でホイールグループに追加してみました。また、パスワードタイムアウトを0に設定しましたが、何も変更されませんでした。
[root@noaspare ~]# su mysql
bash-4.1$ ls -l ls:
cannot open directory.: Permission denied
bash-4.1$ sudo ls -l
[sudo] password for mysql: (Ctrl-C)
bash-4.1$ exit
[root@noaspare ~]# su ssi
[ssi@noaspare /root]$ ls
ls: cannot open directory .: Permission denied
[ssi@noaspare /root]$ sudo ls
anaconda-ks.cfg install.log install.log.syslog rpmbuild
ssi の sudo -l は以下を提供します。
Matching Defaults entries for ssi on this host:
requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE
INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME > LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin,
timestamp_timeout=0
User ssi may run the following commands on this host:
Sudoers entry:
RunAsUsers: ALL
Commands:
ALL
この設定がなぜパスワードを要求しないのか知っていますか? 2人のユーザー間で見られる唯一の違いはシェルですが、それがなぜ重要なのか理解していません。
唯一のユーザー固有の行は次のとおりです。
ssi ALL=(ALL) ALL
答え1
私たちが問題を見つけたとき、解決策は非常にシンプルで論理的でした。ユーザーは何らかの方法でパスワードを定義していません(しかしそのようなことが起こる可能性があります)。ユーザーのパスワードを設定した後、sudoも期待どおりに機能します。