使用更新的 Ubuntu 23.10 安装(截至 2024-01-25),使用 sudo 运行任何程序都无法要求输入密码。它只是永远挂起。运行 strace 时,我注意到它阻塞了指向 tty 的 fd 的 read(),因此我凭直觉输入了密码而没有提示,然后命令按预期运行。
有人见过这种行为吗?
sudo 的版本是 1.9.14p2-1ubuntu1,并且 /dev/tty 上的权限看起来正常:
$ ls -l /dev/tty
crw-rw-rw- 1 root tty 5, 0 2024-01-25 15:17 /dev/tty
$ groups
peter adm cdrom sudo dip plugdev lxd
(我已重新启动几次,只是为了确保系统没有处于异常状态)。
如果我按一次 Enter 键,就会收到密码提示:
$ sudo ls
<press Enter>
[sudo] password for peter:
^Csudo: 1 incorrect password attempt
更新:我已安装 libpam-tacplus 软件包(Ubuntu 中有一个非常旧的版本,我正在用一个现代版本替换它,因为我在 $DAYJOB 开发的产品需要它)。删除此软件包可恢复提示。