Saat menggunakan sudo di Linux, ia meminta kata sandi root, tetapi hanya saat pertama kali Anda menjalankannya. Jika Anda menjalankan perintah sudo lain, ingat Anda sudah memasukkan kata sandi sebelumnya dan tidak memintanya:
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)
Bagaimana sudo melakukannya? Di mana informasi ini disimpan? Ide saya adalah ia mengingat id terminal (seperti poin / 1), tetapi di mana ini disimpan? Proses sudo pertama berakhir ketika dilakukan dengan perintah, kan?
Saya tahu sudo adalah program setuid, jadi ia memiliki hak akses root sepanjang waktu, tetapi saya masih tidak dapat memikirkan tempat yang baik untuk menyimpan informasi yang telah dimasukkan oleh pengguna dengan kata sandi. Apakah ada beberapa proses daemon yang terlibat?
Jawaban:
Mungkin di bawah
/var/db/sudo
atau/var/run/sudo
dan Anda mungkin akan menemukan direktori nama pengguna dengan file di bawahnya yang dipesan dengan nomor tty.Hak istimewa yang sebenarnya diberikan, termasuk berapa lama sesi berlangsung sebelum Anda harus memasukkan kata sandi lagi tergantung pada bagaimana pengaturan sudoers. Ada pengaturan untuk memberikan / membatasi banyak hal yang berbeda, tetapi itu tidak disimpan dalam file-file ini yang hanya menyimpan cap waktu. Berapa lama sesi berlangsung, atau kapan sudo perlu meminta kata sandi Anda lagi, ditentukan oleh delta waktu saat ini dan cap waktu sesi dalam direktori ini, dan berapa lama sudo diatur untuk memungkinkan sesi berlangsung.
sumber
Coba
man sudo
dan lihat bagian FILES:Dan di
SECURITY NOTES
(halaman manual dari Debian 6.0.4)
sumber