使用 sudoed 窗格中的 sudo 创建 Tmux 窗格?

hen*_*tha 5 zsh tmux sudo

我不清楚这里的术语,所以请耐心等待。

我使用 Tmux。我sudo foo在我当前的窗格中。它提示我输入密码;我输入它。现在,有一段时间,当我处理sudo事情时,窗格不必再次提示我输入密码。

但是,如果我在当前窗口中创建一个新窗格(例如在保持原始窗格可见的同时编辑文件),并且 I sudo bar,它将再次提示我输入密码。

在我创建它的那一刻,有没有办法将第一个窗格的“sudo unlocked”状态传递给第二个窗格?

就其价值而言,我的外壳是 Zsh。

需要明确的是:我在这里期待 Tmux 答案,也许是一种更改窗口拆分绑定以在创建窗格时执行某些命令的方法。但我也对配置这种行为的其他方式感兴趣。

Kus*_*nda 12

在您的系统上,一旦sudo对您进行了身份验证,身份验证就与您运行的特定 TTY 相关联sudo。中的每个窗格tmux都有自己的 TTY。

sudo在您的系统上tty_ticket默认使用该选项,或者它使用timestamp_type=tty(可能不是明确的,因为它是默认值)。这些设置记录在sudoers手册中:

tty_tickets

如果设置,用户必须基于每个 tty 进行身份验证。启用此标志后,sudo将为每个终端在时间戳文件中使用单独的记录。如果禁用,则所有登录会话都使用单个记录。

此选项已被选项取代timestamp_type

timestamp_type

sudoers使用每个用户的时间戳文件进行凭据缓存。timestamp_type 选项可用于指定使用的时间戳记录的类型。它有以下可能的值:

值为globalppidtty(默认值)和kernel(请参阅sudoers手册以了解其中每一项的说明)。

您可能希望修改您的sudoers配置(通过visudo命令)以包括

Defaults !tty_tickets
Run Code Online (Sandbox Code Playgroud)

或者

Defaults timestamp_type=global
Run Code Online (Sandbox Code Playgroud)

其中任何一个都会将身份验证与您当前的登录会话相关联,而不是与特定的 TTY 相关联。