Bagaimana cara membatalkan batas waktu sudo yang tersisa yang saat ini diterapkan?

38

Ketika saya baru saja berlari sudo, dan tidak ingin tetap aktif selama batas waktu normal habis, bagaimana saya bisa membatalkan batas waktu aktif yang tersisa itu?

sudo -k membunuhnya untuk sesi terminal saat ini, tetapi jika suatu proses saat ini berjalan di sesi itu dan tidak dapat berjalan sudo -k, apakah ada cara untuk membatalkannya dari sesi terminal lain?

Dan apakah ada cara untuk membatalkan semua waktu yang saat ini diterapkan sudo(untuk semua sesi terminal, dan semua aplikasi yang menjalankan gksudo, dll?

Meskipun, kalau dipikir-pikir itu, GUI yang berjalan mungkin hanya perlu ditutup, tetapi saya hanya memeriksa bahwa Alt+ F2membuat gksu aktif untuk doa berikutnya.

Peter.O
sumber

Jawaban:

38

Tidak yakin apakah Anda bermaksud mematikan sudo timeout sehingga tidak timeout atau time out segera, tetapi jika Anda ingin menghapus timestamp yang tersisa, Anda dapat menggunakan sudo -k

Kalau tidak, jika Anda mencoba membatalkan batas waktu sehingga sudo tidak batas waktu, saya pikir itu tidak mungkin dilakukan di sesi saat ini. Satu-satunya cara yang saya tahu akan mengubah timestamp_timeoutdalam sudoersberkas dan restart sesi.

wajiw
sumber
oops .. Saya agak lambat dengan detail: Saya baru saja menambahkan sedikit lebih banyak ke pertanyaan saya .. tentang "-k" ... dan, ya, saya mengacu pada situasi satu kali , meskipun sekarang ia membawa masalah "satu kali" di seluruh sistem. ... Terima kasih (+1) untuk asnwer yang sempurna untuk pertanyaan oringinaL saya (kurang detail) ..
Peter.O
1
Saya tidak begitu mengerti bagaimana -Ksecara praktis berbeda dengan -k(ketika -k digunakan oleh itseld) .., tetapi -kmemiliki penggunaan ganda: 1. dengan sendirinya (membatalkan timestamp) ... 2. ketika digunakan dengan perintah, itu meminta kata sandi, terlepas dari apakah batas waktu sudo sebelumnya telah kadaluarsa ..... Dan omong-omong: sudo -k bekerja di Alt + F2 untuk membunuh stempel waktu panggilan sudo / gksu sebelumnya.
Peter.O
Ya saya tidak tahu kapan saya akan menggunakan salah satunya.
wajiw
Selain dari masalah "bunuh semua stempel waktu yang ada" .... Tanpa mengubah pengaturan sudoers yang mendasarinya , satu-satunya cara saya dapat melihat untuk menjalankan sudo "yang dijamin satu kali saja" adalah sudo -k; sudo -k appname.... karena meskipun sudo -k appnamememaksa pengguna untuk masukkan kata sandi, meninggalkan stempel waktu yang sudah ada sebelumnya tidak berubah ... (Saya sebutkan itu sebagai "griss to the mill") ... dan mungkin cara paling sederhana untuk "membunuh" semua stempel waktu yang ada, adalah dengan hanya menghindari masalah seluruhnya dan tekan Ctrl + Alt + L untuk Mengunci layar. :)
Peter.O
hahaha jika Anda memiliki kemampuan, saya akan pergi dengan opsi itu
wajiw
8

Hanya pada salah satu poin Anda:

tetapi jika suatu proses sedang berjalan di sesi itu dan tidak bisa menjalankan sudo -k

Ini khusus untuk baris perintah, jika Anda ingin melakukan apa saja saat beberapa proses lain sedang berjalan, Anda dapat menekan Ctrl+ Zuntuk menghentikan proses; Anda kemudian mendapatkan akses ke terminal saat ini lagi, lakukan apa pun yang Anda suka. Setelah selesai, Anda bisa mengetik jobsuntuk mendapatkan daftar proses, dengan nomor di sampingnya. Ketik fg 1(misalnya - dan hanya fgjika hanya ada satu pekerjaan) untuk memulai kembali suatu proses, naikkan ke latar depan. Demikian pula, bguntuk melakukan hal yang sama tetapi membiarkan proses berjalan di latar belakang.

Sesi contoh

$ sudo apt-get install hello
<CTRL+Z>
[1]+  Stopped    sudo apt-get install hello
$ sudo -k
$ jobs
[1]+  Stopped    sudo apt-get install hello
$ fg 1
Loading database...
....
Stefano Palazzo
sumber
1
Stefano: Terima kasih ... itu sangat bagus ... Linux terus berkata kepada saya, "Ya, tentu saja saya bisa melakukannya" :) ... dan, kalau dipikir-pikir, saya setengah sadar akan Ctrl itu + Z, tapi setengahnya tidak cukup!) ... Sekarang saya telah menemukan situasi "nyata" di mana itu bukan hanya teks di layar, saya yakin saya tidak akan pernah melupakannya ... harus pergi .. Aku punya beberapa Cntrl + Z-ing yang harus dilakukan ...
Peter.O
2

Saya menemukan solusinya. karena pencarian saya tidak menunjukkan hal yang sama dan ini adalah pertanyaan yang sering: sudo menyimpan suatu tempat di sistem file (misalnya di / var / run / sudo), satu direktori per nama pengguna, beberapa file yang berfungsi sebagai cap waktu , satu file untuk setiap terminal. hapus file-file itu dan sistem Anda aman kembali. hanya perlu diingat bahwa file-file itu hanya dapat dilihat untuk di-rooting (jika tidak seorang penyusup mungkin membaca cap waktu dan menyetel jam-waktu kembali ke titik di mana mereka masih valid - memberikan root-ls kepada siapa pun berbahaya). oleh karena itu di / etc / pm / sleep / dan mungkin juga untuk screensaver saya jalankan:

rm -f /var/db/sudo/*/*

sebagai root tentu saja ...

piotr5
sumber