Comment annuler le délai sudo restant appliqué?

38

Quand je viens de courir sudoet que je ne veux pas qu'il reste actif pendant la durée normale de son délai d'attente, comment puis-je annuler ce délai d' attente restant ?

sudo -k le tue pour la session de terminal en cours, mais si un processus est en cours d'exécution dans cette session et ne peut donc pas s'exécuter sudo -k, existe-t-il un moyen de l'annuler à partir d'une autre session de terminal?

Et y a-t-il un moyen d'annuler toutes les sudoheures actuellement appliquées (pour toutes les sessions de terminal, toutes les applications en cours d'exécution de gksudo, etc.?

Bien que, à bien y penser, une interface graphique en cours d’exploitation doive simplement être arrêtée, mais je viens de vérifier que Alt+ F2maintient gksu actif pour les invocations suivantes.

Peter.O
la source

Réponses:

38

Vous ne savez pas si vous voulez supprimer le délai d’expiration Sudo pour qu’il ne soit pas expiré immédiatement, mais si vous souhaitez supprimer l’horodatage restant, vous pouvez utiliser sudo -k

Sinon, si vous essayez d’annuler un dépassement de délai afin que Sudo ne soit pas dépassé, je ne pense pas que ce soit possible dans une session en cours. Le seul moyen que je connaisse serait de modifier le timestamp_timeoutdans le sudoersfichier et de redémarrer la session.

Wajiw
la source
oops .. J'ai été un peu lent avec les détails: j'ai juste ajouté un peu plus à ma question .. à propos de "-k" ... et, oui, je parle d'une situation ponctuelle , bien qu'elle apporte maintenant la question d'un "système" ponctuel à l'échelle du système. ... Merci (+1) pour la réponse qui était parfaite pour ma question oringinaL (manque de détails) ..
Peter.O
1
Je ne comprends pas très bien en quoi -Kc'est pratiquement différent de -k(quand -k est utilisé par itseld) .., mais que son utilisation -kest double: 1. seul (invalide l'horodatage) ... 2. lorsqu'il est utilisé avec une commande, it demande un mot de passe, qu'un délai sudo précédent ait expiré ou non. Et d'ailleurs: sudo -k fonctionne en Alt + F2 pour supprimer l'horodatage d'un précédent appel sudo / gksu.
Peter.O
Oui, je n'ai aucune idée du moment où j'utiliserais l'un plutôt que l'autre.
mercredi
Mis à part le problème "tuer tous les horodatages existants" ... Sans modifier les paramètres de sudoers sous- jacents , le seul moyen que je vois pour exécuter un sudo "garanti" ponctuel est sudo -k; sudo -k appname.... car, bien qu'il sudo -k appnameoblige l'utilisateur à entrez le mot de passe, cela laissera un horodatage préexistant inchangé ... (je le mentionne simplement comme "griss to the mill") ... et peut-être que le moyen le plus simple de "tuer" tous les horodatages existants est simplement d'éviter le problème entièrement et appuyez sur Ctrl + Alt + L pour verrouiller l'écran :)
Peter.O
hahaha si tu as la capacité, j'irais avec cette option
wajiw
8

Juste sur un de vos points:

mais si un processus est en cours d'exécution dans cette session et ne peut donc pas exécuter sudo -k

Ceci est spécifique à la ligne de commande, si vous voulez faire quelque chose alors qu'un autre processus est en cours d'exécution, vous pouvez appuyer sur Ctrl+ Zpour mettre le processus en pause; vous avez alors à nouveau accès au terminal actuel, faites ce que vous voulez. Lorsque vous avez terminé, vous pouvez taper jobspour obtenir une liste de processus, avec un numéro à côté. Tapez fg 1(par exemple - et simplement fgs'il n'y a qu'un seul travail) pour redémarrer un processus en le mettant au premier plan. De même, bgfaire la même chose mais en laissant le processus s'exécuter en arrière-plan.

Exemple de session

$ 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
la source
1
Stefano: Merci ... c'est tellement bon ... Linux n'arrête pas de me dire: "Oui, bien sûr que je peux le faire" :) ... et, à bien y penser, j'étais à moitié conscient de ce que Ctrl + Z, mais la moitié ne suffit pas!) ... Maintenant que je suis tombé sur une "vraie" situation dans laquelle il n'y a pas que du texte à l'écran, je suis sûr que je ne l'oublierai jamais ... il faut que j'aille .. J'ai un peu de Ctrl + Z-ing à faire ...
Peter.O
2

J'ai trouvé une solution. puisque ma recherche ne montre rien de semblable et que la question est fréquente: sudo stocke quelque part sur le système de fichiers (par exemple, dans / var / run / sudo), un répertoire par nom d'utilisateur, plusieurs fichiers faisant office d'horodatage. , un fichier pour chaque terminal. supprimez ces fichiers et votre système est à nouveau sécurisé. Gardez simplement à l'esprit que ces fichiers ne sont visibles que par la racine (sinon, un intrus pourrait lire l'horodatage et régler l'heure à un point où ils étaient encore valides - il est dangereux de donner root à tout le monde.) donc dans mon / etc / pm / sleep / et peut-être aussi pour l'écran de veille, je lance:

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

en tant que racine bien sûr ...

piotr5
la source