50 votes

Comment annuler le délai sudo restant actuellement appliqué ?

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

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 qu'il ne peut donc pas exécuter la commande sudo -k Y a-t-il un moyen de l'annuler à partir d'une autre session de terminal ?

Existe-t-il un moyen d'annuler toutes les demandes en cours ? sudo (pour toutes les sessions de terminal, et toutes les applications gksudo en cours d'exécution, etc.

Toutefois, à bien y réfléchir, une interface graphique en cours d'exécution peut simplement avoir besoin d'être arrêtée, mais je viens de le vérifier. Alt + F2 maintient gksu actif pour les invocations suivantes.

52voto

LVDave Points 81

Je ne sais pas si vous voulez tuer un timeout sudo pour qu'il n'y ait pas de timeout ou pour qu'il y ait un timeout immédiat, mais si vous voulez supprimer l'horodatage restant, vous pouvez utiliser sudo -k

Sinon, si vous essayez d'annuler un timeout pour que sudo ne soit pas timeout, je ne pense pas que cela soit possible dans une session en cours. Le seul moyen que je connaisse serait de modifier le paramètre timestamp_timeout dans le sudoers et redémarrer la session.

9voto

andybee Points 497

Juste sur un de vos points :

mais si un processus est dans cette session et qu'il ne peut donc pas exécuter sudo -k

Ceci est spécifique à la ligne de commande, si vous voulez faire quelque chose pendant qu'un autre processus est en cours d'exécution, vous pouvez appuyer sur Ctrl + Z pour mettre le processus en pause ; vous avez alors de nouveau accès au terminal actuel, et vous pouvez y faire ce que vous voulez. Lorsque vous avez terminé, vous pouvez taper jobs pour obtenir une liste des processus, avec un numéro à côté d'eux. Type de processus fg 1 (par exemple - et simplement fg s'il n'y a qu'un seul travail) pour redémarrer un processus et le faire passer au premier plan. De même, bg pour faire 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...
....

2voto

user74784 Points 71

J'ai trouvé une solution. comme ma recherche n'a rien donné de semblable et que cette 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 qui servent d'horodatage, un fichier pour chaque terminal. supprimez ces fichiers et votre système est à nouveau sûr. gardez à l'esprit que ces fichiers ne sont visibles que par root (sinon un intrus pourrait lire l'horodatage et remettre l'horloge à l'heure à un moment où ils étaient encore valides -- accorder un root-ls à n'importe qui est dangereux). donc dans mon /etc/pm/sleep/ et peut-être aussi pour l'économiseur d'écran que je fais tourner :

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

en tant que racine bien sûr...

-1voto

Le présent ne peut pas être fait . Le processus sudo parent se terminera lorsque son enfant le fera, et l'arrêt du processus parent entraînera l'arrêt des processus enfants.

Terminaison externe également n'a pas de sens car vous ne pouvez pas vraiment savoir à quel moment le programme se terminera. Le déroulement du programme serait imprévisible.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X