Seberapa sering kata sandi diminta untuk perintah sudo? Di mana saya bisa mengaturnya?

24

Saya menjalankan cukup banyak sudoperintah.

Saya perhatikan bahwa jika saya mengeksekusi satu dan kemudian yang lain dalam beberapa menit, kedua kalinya saya tidak mendapatkan pesan:

[sudo] kata sandi untuk my_username:

tapi saya mendapatkannya ketika ada lebih banyak waktu antara pelaksanaan dua perintah.

Apa periode waktu di mana pesan tidak muncul? Bagaimana kita memeriksanya / memperbaruinya?

fedorqui
sumber
1
sudo visudo, lalu% sudo line harus% sudo ALL = (ALL: ALL) NOPASSWD: ALL, tidak akan menanyakan kata sandi saat Anda mengetikkan sudo apa pun
Qasim
3
Ini (NOPASSWD: ALL) adalah saran yang sangat berbahaya. Ini akan membuat instalasi Anda tidak aman.
Sri

Jawaban:

31

Batas waktu default sudoadalah 15 menit; yaitu, sudoakan mengingat kata sandi Anda selama 15 menit secara default.

Anda dapat mengubah batas waktu default ini dengan menambahkan string dalam file /etc/sudoers. Namun, Anda tidak mengubah file secara langsung, melainkan Anda menggunakan perintah sudo visudo.

Jadi, ketikkan sudo visudoterminal. Ini akan membuka file (sebenarnya, sementara) untuk kami edit, menggunakan editor pilihan Anda.

Catatan: jika Anda menggunakan visudountuk pertama kalinya, Anda harus ditanya editor mana yang ingin Anda gunakan, jadi pilihlah editor Anda. Tidak ada editor "yang lebih baik", tetapi saya lebih suka nano. Jika Anda sudah pernah menggunakan visudodan memilih editor sebelumnya, tetapi Anda ingin menggunakan editor lain untuk saat ini, Anda dapat melakukannya sudo EDITOR=vi visudountuk menggunakannya vi, atau mengubahnya nanountuk digunakan nano. Jika Anda ingin mengubah editor pilihan Anda secara permanen, lakukan sudo update-alternatives --config editor.

Cari baris ini:

Defaults    env_reset

Dan tambahkan (dengan koma) di akhir, di mana X adalah waktu yang ingin Anda atur dalam menit.timestamp_timeout=X

Jadi baris Anda akan terlihat seperti ini, sebagai contoh:

Defaults    env_reset,timestamp_timeout=5

Jika Anda menentukan 0, Anda akan selalu ditanya kata sandi. Jika Anda menentukan nilai negatif, batas waktu tidak akan pernah berakhir.

Setelah selesai, simpan dan keluar.

Sumber: RootSudoTimeout

Alaa Ali
sumber
Terima kasih, @Alaa, ini adalah jawaban yang bagus dan bermanfaat. Sama seperti catatan tambahan, Ctrl + xbagian ini tidak selalu cocok karena editor dapat misalnya vi(dalam kasus saya).
fedorqui
Ngomong-ngomong, saya melakukan kesalahan besar menambahkan baris baru hanya Default timestamp-0dengan yang tidak env_reset. Itu merusak file sudoers saya. Harus menggunakan askubuntu.com/a/73872/143251 untuk menyelesaikannya!
fedorqui
@ fedorqui: Itulah mengapa Anda harus menggunakan visudo (seperti yang direkomendasikan Alaa) alih-alih mengedit file secara langsung. Yang pertama akan sintaks memeriksa file untuk Anda, mencegah Anda mengunci diri dari sudo.
Plutor
Ya, ya, itulah yang saya lakukan pada @Putor. Tetapi viapakah editor yang saya maksudkan visudo. Masalahnya adalah saya menyimpan file tersebut walaupun saya mendapat pesan peringatan saat menutupnya. Kesalahan saya, tentu saja.
fedorqui
1
@ Fedorqui, ya saya agak ingin menghapus bagian itu karena siapa pun bisa menggunakan editor yang berbeda. Saya telah mengedit jawaban saya untuk tidak menjadi editor khusus.
Alaa Ali
3

Lihat posting ini di sini: http://ubuntuforums.org/showthread.php?p=116697#post116697

Edit /etc/sudoersfile, gunakan sudo visudoperintah untuk keamanan. Tambahkan timestamp_timeout=0ke baris mulai Defaultsbertanya setiap kali, atau positif X untuk penundaan X menit.

Tuminoid
sumber
1
Saya harus mendaftar di forum untuk melihatnya. Sementara itu, bisakah Anda menunjukkan file mana yang harus saya edit dengan timestamp_timeout=0baris?
fedorqui
OK, jawab tetap.
Tuminoid
Itu berhasil! Saya akan menerima jawaban lain karena memiliki penjelasan yang lebih komprehensif dan termasuk env_resetreferensi, yang penting. Pokoknya ini jawaban Anda juga sangat membantu, jadi terima kasih!
fedorqui
0

Tidak yakin apakah ini kedaluwarsa atau tidak, tetapi Anda bisa mencoba

sudo su

Ini akan menanyakan kata sandi Anda dan setelah itu semua perintah dijalankan sebagai sudo.

Mihai
sumber
1
Ya, @ Rat2000, tapi saya ingin tetap menggunakan pengguna saya dan tidak root. Saya pikir ini lebih aman. Bagaimanapun, terima kasih atas sarannya.
fedorqui
3
sudo su membuat Anda menjadi root. Prompt Anda kemudian harus menjadi root @ yourpc. Pikirkan bahwa root memiliki .bashrc sendiri, jadi alias Anda tidak akan berfungsi. Perlu diketahui juga bahwa root dapat merusak sistem, jadi berhati-hatilah!
speter