tmux 是否没有要求会话中进程的 sudo 密码(事先进行身份验证)?

tmux 是否没有要求会话中进程的 sudo 密码(事先进行身份验证)?

我已经看过了[已解决] 为什么 sudo 在 tmux/ssh 会话中要求用户密码? · GitHub 要点,看起来这是设计使然,但我想我还是会问:

假设我使用这样的命令:

tmux new-session -d 'sudo udevadm monitor -e' \; attach

正如预期的那样,一旦tmux启动新会话,它就会要求sudo输入密码。但后来我尝试通过sudo事先验证来“作弊”:

$ sudo --validate
[sudo] password for user:
$ tmux new-session -d 'sudo udevadm monitor -e' \; attach

...这要求再次sudo会话启动后立即输入密码tmux- 即使我已经事先成功输入了密码。

那么有没有一种方法可以启动一个tmux会话,其中包含(一个)sudo 进程,并且事先只进行一次 sudo 密码验证?

答案1

如果您可以修改 /etc/sudoers,最简单的解决方案是取消tty_tickets用户的选项设置:

Defaults:yourlogin !tty_tickets

然后,您可以在运行 tmux 之前运行 sudo 命令,并且 sudo 将更新您的(单个)时间戳并允许后续 sudo 命令而无需密码提示(在 timestamp_timeout 内)。

这是相关选项,因为通常会设置 tty_tickets 选项,该选项需要每个 tty 的密码,并且 tmux 会启动一个新的 tty。

相关内容