我对这里的术语不清楚,所以请耐心等待。
我用的是Tmux。我sudo foo
在当前窗格中。它提示我输入密码;我输入它。现在,有一段时间,当我进行操作时,该窗格不必再次提示我输入密码sudo
。
但是,如果我在当前窗口中创建一个新窗格(例如,在保持原始窗格可见的同时编辑文件),并且 I sudo bar
,它将再次提示输入我的密码。
有没有办法在我创建第一个窗格时将其“sudo 解锁”状态传递给第二个窗格?
无论如何,我的 shell 是 Zsh。
需要明确的是:我在这里期待 Tmux 答案,也许是一种更改窗口分割绑定以在创建窗格时执行某些命令的方法。但我也对配置此行为的其他方法感兴趣。
答案1
在您的系统上,一旦对sudo
您进行了身份验证,该身份验证就会与您运行的特定 TTY 相关联sudo
。每个窗格tmux
都有自己的 TTY。
sudo
您的系统上tty_ticket
默认使用该选项,或者它使用timestamp_type=tty
(可能不明确,因为它是默认值)。这些设置记录在sudoers
手册中:
tty_tickets
如果设置,用户必须基于每个 tty 进行身份验证。启用此标志后,
sudo
将为每个终端在时间戳文件中使用单独的记录。如果禁用,单个记录将用于所有登录会话。此选项已被
timestamp_type
选项取代。
timestamp_type
sudoers
使用每用户时间戳文件进行凭证缓存。 timestamp_type 选项可用于指定所使用的时间戳记录的类型。它有以下可能的值:
这些值是global
、ppid
、tty
(默认)和kernel
(sudoers
有关每个值的说明,请参阅手册)。
您可能需要修改您的sudoers
配置(通过visudo
命令)以包括
Defaults !tty_tickets
或者
Defaults timestamp_type=global
其中任何一个都会将身份验证与您当前的登录会话而不是特定的 TTY 联系起来。