Tmux – Create Pane with Sudo from Sudoed Pane

sudotmuxzsh

I'm unclear on the terminology here, so please bear with me.

I use Tmux. I sudo foo in my current pane. It prompts for my password; I enter it. Now, for a while, the pane doesn't have to prompt again for my password when I sudo things.

However, if I make a new pane in the current window (e.g. to edit a file while keeping the original pane visible), and I sudo bar, it will prompt for my password again.

Is there a way to pass the "sudo unlocked" state of the first pane to the second one at the moment I create it?

For what it's worth, my shell is Zsh.

To be clear: I'm expecting a Tmux answer here, perhaps a way to change my window-splitting bindings to execute some command upon creating a pane. But I'd also be interested in other ways to configure this behaviour.

Best Answer

On your system, once sudo has authenticated you, the authentication is tied to the particular TTY that you ran sudo from. Each pane in tmux has its own TTY.

sudo on your system uses the tty_ticket option by default, or it uses timestamp_type=tty (possibly not explicitly as it is the default). These settings are documented in the sudoers manual:

tty_tickets

If set, users must authenticate on a per-tty basis. With this flag enabled, sudo will use a separate record in the time stamp file for each terminal. If disabled, a single record is used for all login sessions.

This option has been superseded by the timestamp_type option.

timestamp_type

sudoers uses per-user time stamp files for credential caching. The timestamp_type option can be used to specify the type of time stamp record used. It has the following possible values:

The values are global, ppid, tty (default), and kernel (see the sudoers manual for a description of each of these).

You may want to modify your sudoers configuration (via the visudo command) to either include

Defaults !tty_tickets

or

Defaults timestamp_type=global

Either of these would tie the authentication to your current login session rather than to a particular TTY.

Related Question