При использовании sudo в Linux он запрашивает пароль root, но только при первом запуске. Если вы запустите другую команду sudo, она помнит, что вы уже ввели пароль ранее, и не запрашивает его:
thomas@ubuntu:~$ sudo id
[sudo] password for thomas: ******
uid=0(root) gid=0(root) groups=0(root)
thomas@ubuntu:~$ sudo id
uid=0(root) gid=0(root) groups=0(root)
Как sudo делает это? Где хранится эта информация? Моя идея заключается в том, что он запоминает идентификатор терминала (например, pts / 1), но где он хранится? Первый процесс sudo заканчивается, когда он завершается командой, верно?
Я знаю, что sudo - это программа setuid, поэтому у нее все время есть привилегии root, но я до сих пор не могу найти подходящее место для хранения информации о том, что пользователь уже ввел пароль. Есть ли какой-то процесс, связанный с демоном?