Khi sử dụng sudo trên Linux, nó yêu cầu mật khẩu root, nhưng chỉ lần đầu tiên bạn chạy nó. Nếu bạn chạy một lệnh sudo khác, nó sẽ nhớ rằng bạn đã nhập mật khẩu trước đó và không yêu cầu nó:
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)
Làm thế nào để sudo làm điều đó? Thông tin này được lưu trữ ở đâu? Ý tưởng của tôi là nó nhớ id thiết bị đầu cuối (như pts / 1), nhưng cái này được lưu ở đâu? Quá trình sudo đầu tiên được kết thúc khi nó được thực hiện bằng lệnh, phải không?
Tôi biết sudo là một chương trình setuid, vì vậy nó luôn có đặc quyền của root, nhưng tôi vẫn không thể nghĩ ra một nơi tốt để lưu trữ thông tin mà người dùng đã nhập mật khẩu. Có một số quá trình daemon liên quan?