sudo有一个相当奇怪的问题。 基本上,它authentication,但有时只是不启动提供的命令。 例如:
liori@marvin:~$ sudo whoami root liori@marvin:~$ sudo whoami root liori@marvin:~$ sudo whoami liori@marvin:~$ sudo whoami liori@marvin:~$ sudo whoami liori@marvin:~$
我写了一个testing用例来演示这个问题:
liori@marvin:~$ sudo whoami; for i in `seq 100`; do echo -n ':' ; sudo whoami ; done ; echo root ::::::::::::root :::::root :::::root :::::::::::root ::::::::::root ::::::::::::::::::::::::::::::::root :::root ::::root ::::root :::root :::root ::root :root ::::: liori@marvin:~$
当然,预期的输出是一系列的行,每行只有一个冒号字符。 我没有任何线索从哪里开始debugging这个问题。
对于每个尝试(无论命令是否实际运行),我都会在syslog中获得一个条目:
Apr 11 19:47:40 marvin systemd-logind[806]: New session c1079 of user root. Apr 11 19:47:40 marvin systemd-logind[806]: Removed session c1079.
这是Debian SID。 几天前我开始观察这种行为,经过稍微大一点的更新(我可能每月更新一次这个系统),然后将系统从一个硬盘移动到另一个硬盘(使用rsync -av --del )。
任何帮助将不胜感激。
Sid仍然不稳定,这可能是一个bug,我build议你在这里提交给Debian。
Bug已经填满 。 解决方法:
在我的情况下,我已经改变了/etc/pam.d/login和/etc/pam.d/gdm3*并添加了一行
session required pam_loginuid.so就在@include common-session之前
(来自Michael Biebl的回应)