
我們正在使用 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
知道為什麼此配置不要求輸入密碼嗎?我能看到這兩個用戶之間的唯一區別是他們的外殼,但我不明白為什麼這很重要。
唯一特定於使用者的行是
ssi ALL=(ALL) ALL
答案1
事實證明,當我們剛剛發現問題所在時,解決方案非常簡單且合乎邏輯:使用者在某種程度上沒有定義密碼(但這可能會發生)。為用戶設定密碼後,sudo 也按預期工作。