Come annullare il timeout di sudo rimanente attualmente applicato?


38

Quando ho appena eseguito sudoe non voglio che rimanga attivo per la normale durata del timeout, come posso annullare quel timeout attivo rimanente ?

sudo -k lo uccide per la sessione terminale corrente, ma se un processo è attualmente in esecuzione in quella sessione e quindi non può essere eseguito sudo -k, c'è un modo per annullarlo da un'altra sessione terminale?

E c'è un modo per annullare tutti i sudotempi attualmente applicati (per tutte le sessioni terminali, tutte le app in esecuzione gksudo, ecc?

Anche se, vieni a pensarci, potrebbe essere necessario chiudere una GUI in esecuzione, ma ho appena verificato che Alt+ F2mantenga gksu attivo per le successive invocazioni.

Risposte:


38

Non sono sicuro se intendi uccidere un timeout sudo in modo che non si interrompa o così sia immediatamente scaduto, ma se vuoi rimuovere il timestamp rimanente puoi usare sudo -k

Altrimenti, se stai cercando di annullare un timeout in modo che sudo non scada, non penso che sia possibile farlo in una sessione corrente. L'unico modo che conosco sarebbe quello di modificare timestamp_timeoutil sudoersfile e riavviare la sessione.


oops .. Ero un po 'lento con i dettagli: ho appena aggiunto un po' di più alla mia domanda .. su "-k" ... e, sì, mi riferisco a una situazione una tantum , anche se ora porta la questione di un "unico" a livello di sistema. ... Grazie (+1) per la risposta che era perfetta per la mia domanda oringinaL (privo di dettagli) ..
Peter.O

1
Non capisco bene quanto -Ksia praticamente diverso da -k(quando -k viene usato da suoeld) .., ma -kha un doppio utilizzo: 1. da solo (invalida il timestamp) ... 2. se usato con un comando, richiede una password, indipendentemente dal fatto che sia scaduto o meno un precedente timeout sudo ..... E a proposito: sudo -k funziona in Alt + F2 per eliminare il timestamp di una precedente chiamata sudo / gksu.
Peter

Sì, non ho idea di quando userei uno sopra l'altro.
Wajiw,

A parte il problema "uccidi tutti i timestamp esistenti" .... Senza modificare le impostazioni dei sudoers sottostanti , l'unico modo che posso vedere per eseguire un sudo "garantito" solo una volta è sudo -k; sudo -k appname.... perché sebbene sudo -k appnamecostringa l'utente a inserisci la password, lascia invariato un timestamp preesistente ... (lo cito solo come "griss to the mill") ... e forse il modo più semplice per "uccidere" tutti i timestamp esistenti, è semplicemente evitare il problema del tutto e premi Ctrl + Alt + L per bloccare lo schermo. :)
Peter

ahahah se hai l'abilità, sceglierei
quell'opzione

8

Solo su uno dei tuoi punti:

ma se un processo è attualmente in esecuzione in quella sessione e quindi non è possibile eseguire sudo -k

Questo è specifico per la riga di comando, se vuoi fare qualcosa mentre è in esecuzione qualche altro processo, puoi premere Ctrl+ Zper mettere in pausa il processo; quindi accedi nuovamente al terminale attuale, fai tutto ciò che ti piace. Al termine, è possibile digitare jobsper ottenere un elenco di processi, con un numero accanto. Digita fg 1(ad esempio - e semplicemente fgse c'è un solo lavoro) per riavviare un processo, portandolo in primo piano. Allo stesso modo, bgper fare la stessa cosa ma lasciando il processo in esecuzione in background.

Sessione di esempio

$ 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...
....

1
Stefano: Grazie ... è così bello ... Linux continua a dirmi: "Sì, certo che posso farcela" :) ... e, a pensarci bene, ero quasi a conoscenza di quel Ctrl + Z, ma la metà non è abbastanza!) ... Ora che ho incontrato una situazione "reale" in cui non è solo il testo sullo schermo, sono sicuro che non lo dimenticherò mai ... devo andare .. Ho un po 'di Cntrl + Z-ing da fare ...
Peter.O

2

Ho trovato una soluzione poiché la mia ricerca non ha mostrato nulla di simile e questa è una domanda frequente: sudo memorizza da qualche parte sul filesystem (ad esempio in / var / run / sudo), una directory per nome utente, diversi file che funzionano come timestamp , un file per ciascun terminale. elimina quei file e il tuo sistema è di nuovo sicuro. tieni solo a mente che quei file sono visibili solo alla radice (altrimenti un intruso potrebbe leggere il timestamp e riportare l'ora al punto in cui erano ancora validi - concedere root-l a chiunque è pericoloso). quindi nel mio / etc / pm / sleep / e forse anche per lo screensaver corro:

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

come radice ovviamente ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.