我已经看到[已解决] 为什么 sudo 在 tmux/ssh 会话中询问用户密码?· GitHub Gist,看起来这是设计使然,但我想我还是会问:
假设我使用这样的命令:
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
用(a)sudo'ed process(es)开始会话,事先只有一个sudo密码验证?
如果您可以修改 /etc/sudoers,最简单的解决方案是取消
tty_tickets
为您的用户设置该选项:然后您可以在运行 tmux 之前运行 sudo 命令,sudo 将更新您的(单个)时间戳并允许后续 sudo 命令没有密码提示(在 timestamp_timeout 内)。
这是相关的选项,因为通常会设置 tty_tickets 选项,这需要每个 tty 的密码,并且 tmux 会启动一个新的 tty。