# 用户信息
root@lanji-server:~# id lanji uid=1000(lanji) gid=1000(lanji) groups=1000(lanji),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lxd)
虽然在sudoers中配置了lanji用户的nopasswd指令,但是lanji此用户同时属于sudo 这个组
lanji@lanji-server:~$ cat /etc/group |grep lanji adm:x:4:syslog,lanji cdrom:x:24:lanji sudo:x:27:lanji dip:x:30:lanji plugdev:x:46:lanji lxd:x:116:lanji lanji:x:1000:
在sudoers中也定义了 %sudo 组的权限是需要输入密码的。
所以根据 sudoers 的规则,如果匹配到多个,则最后一个生效。
root@lanji-server:~# cat /etc/sudoers|grep -vE "^$|^#" Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" root ALL=(ALL:ALL) ALL lanji ALL=(ALL:ALL) NOPASSWD:ALL %admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL
解决办法就是把lanji用户挪到最下面
# 通过-l参数查看当前账号会匹配到哪些规则
lanji@lanji-server:~$ sudo -l Matching Defaults entries for lanji on lanji-server: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User lanji may run the following commands on lanji-server: (ALL : ALL) ALL (ALL : ALL) NOPASSWD: ALL
现在可以看到匹配了2条,最后一条优先生效,就不需要输入密码了。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/5283.html