เมื่อใช้ sudo บน Linux จะขอรหัสผ่านรูท แต่เฉพาะครั้งแรกที่คุณเรียกใช้ หากคุณเรียกใช้คำสั่ง 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 ทำอย่างไร ข้อมูลนี้ถูกเก็บไว้ที่ไหน? ความคิดของฉันคือมันจำเทอร์มินัล id (เช่น pts / 1) แต่สิ่งนี้ถูกเก็บไว้ที่ไหน กระบวนการ sudo แรกจะสิ้นสุดลงเมื่อทำกับคำสั่งใช่ไหม
ฉันรู้ว่า sudo เป็นโปรแกรม setuid ดังนั้นจึงมีสิทธิ์ของรูทตลอดเวลา แต่ฉันก็ยังนึกถึงสถานที่ที่ดีในการเก็บข้อมูลที่ผู้ใช้ป้อนรหัสผ่านไปแล้ว มีกระบวนการภูตบ้างไหม?