Sharing Sudo Credentials Across Ubuntu Terminal Sessions
This article explains how sudo credentials function across multiple terminal sessions in Ubuntu. By default, Ubuntu allows a single authentication to apply to subsequent commands in different windows for a limited time. We will cover how this timestamp mechanism works, how to configure it, and the security considerations involved in managing sudo access.
How Sudo Authentication Works
In Ubuntu, sudo does not actually share your password between terminals. Instead, it uses a timestamp file to track when you last authenticated. When you enter your password successfully in one terminal session, sudo creates a timestamp record. For a default period of 15 minutes, any other terminal session opened by the same user will recognize this timestamp and allow sudo commands without prompting for a password again.
Configuring the Timeout Period
You can change how long this authentication persists by modifying the
sudoers file. To do this safely, always use the visudo
command, which checks for syntax errors before saving changes. Open the
terminal and run sudo visudo. Look for the line containing
Defaults env_reset. You can add or modify the
timestamp_timeout value below it. For example, to set the
timeout to 30 minutes, add Defaults timestamp_timeout=30.
Save and exit the editor to apply the changes.
Security Implications
Extending the sudo timeout or relying on shared authentication states
increases security risks. If you leave a terminal window open and
unattended, anyone with physical access to your machine can execute
privileged commands without knowing your password. It is recommended to
keep the default timeout short or use sudo -k to manually
invalidate the timestamp when you step away from your computer.
Conclusion
Ubuntu effectively shares sudo authentication status across sessions using a timestamp system. While convenient, users should understand the default 15-minute window and configure it carefully to balance usability with system security.