我已经看到[已解决] 为什么 sudo 在 tmux/ssh 会话中要求输入用户密码?· GitHub Gist,看起来这是设计使然,但我想我还是会问:
假设我使用这样的命令:
tmux new-session -d 'sudo udevadm monitor -e' \; attach
Run Code Online (Sandbox Code Playgroud)
一旦tmux
开始新会话,它就会sudo
按预期要求输入密码。但后来我尝试通过sudo
事先验证来“作弊” :
$ sudo --validate
[sudo] password for user:
$ tmux new-session -d 'sudo udevadm monitor -e' \; attach
Run Code Online (Sandbox Code Playgroud)
...这要求再次对sudo
密码尽快tmux
启动对话-即使我已输入密码成功提前。
那么有没有一种方法可以tmux
在内部使用 (a) sudo 处理的进程启动会话,并且事先只有一个 sudo 密码验证?
如果您可以修改 /etc/sudoers,最简单的解决方案是tty_tickets
为您的用户取消设置该选项:
Defaults:yourlogin !tty_tickets
Run Code Online (Sandbox Code Playgroud)
然后你可以在运行 tmux 之前运行一个 sudo 命令,并且 sudo 将更新你的(单个)时间戳并允许后续的 sudo 命令没有密码提示(在timestamp_timeout 内)。
这是相关的选项,因为通常会设置 tty_tickets 选项,它需要为每个 tty 设置密码,而 tmux 会启动一个新的 tty。
归档时间: |
|
查看次数: |
1232 次 |
最近记录: |