La permission de sudo n'expire pas pendant la mise à niveau apt-get

9

Considérez ceci: vous tapez $sudo apt-get upgradeet obtenez une liste de choses qui nécessitent une mise à niveau avec une confirmation "Y \ n". avant de pouvoir lire la liste, et tapez "Y" ou "n", le téléphone sonne, ou votre patron entre, ou vous faites autre chose. Vous revenez une heure plus tard et appuyez sur Y pour installer les mises à jour.

vous n'êtes pas invité à nouveau pour un mot de passe. sans doute, d'autres commandes sudo dans le shell s'exécuteront, car le temporisateur a été mis en attente en attendant l'entrée de l'utilisateur. Ou un utilisateur peut tuer le processus de mise à jour et faire quelque chose comme sudo -iet simplement rester indéfiniment en racine.

J'utilise ubuntu mate 14.04

est-ce une exception de sécurité notable? Dois-je essayer de le signaler quelque part? Si oui, où?

j0h
la source
5
Que voulez-vous dire par "vraisemblablement"? L'avez-vous essayé ou non?
luckyrumo
3
J'ai essayé cela tout à l'heure, même avec Defaults passwd_timeout=3 mon fichier sudoers, lors de l'exécution du sudo apt-get upgrademot de passe n'est pas demandé. Ce n'est pas bon
Sergiy Kolodyazhnyy
Je n'ai pas le problème, avec les paramètres standard sur Ubuntu 15.04
luckyrumo
1
@TobiasKienzler non. Je n'ai modifié mon fichier sudoers en aucune façon, sauf pour ajouter cette partie passwd_timeout. Chech ma réponse. Le problème était lié au délai d'expiration de l'horodatage. Ce sont différentes options
Sergiy Kolodyazhnyy
1
@Serg je vois, il y a deux timeouts. Quelle confusion: / Merci :)
Tobias Kienzler

Réponses:

22

Vous n'êtes pas invité à entrer un mot de passe car il sudoa fait son travail et a démarré en apt-gettant que root. Tant qu'il est dans l'invite, le apt-getprocessus est toujours en cours d'exécution, et comme il s'exécute toujours en tant que root, il n'est pas nécessaire de saisir à nouveau votre mot de passe.

En d'autres termes, tant qu'un sudoprocessus est en cours d'exécution, vous ne serez pas invité à saisir à nouveau votre mot de passe pour ce processus; sudon'interrompt pas le processus toutes les 15 minutes (délai d'expiration par défaut) et vous demande votre mot de passe.

Maintenant, si vous deviez ouvrir un autre terminal et essayer d'exécuter un autre processus sous sudo, vous serez invité à entrer votre mot de passe.

saiarcot895
la source
5
... ou bien dans le même terminal, une fois la commande sudo en pause terminée
steeldriver
3

sudoLa timestamp_timeoutvariable par défaut est de 15 minutes. Cela signifie que si vous cliquez sur n sudo apt-get upgradedans les 15 minutes, vous pouvez vous attendre à entrer dans le shell racine avec sudo -i. C'est exactement ce qui s'est passé. Cependant, si vous définissez cela dans /etc/sudoersas Default timestamp_timeout 0, vous serez invité à le faire à chaque fois. Personnellement, je l'ai réglé sur 3. Si votre sudo ne s'arrête pas même après 15 minutes, alors il y a quelque chose de grave avec votre sudobinaire.

Ce comportement n'est pas une faille de sécurité, mais plutôt une «fonctionnalité pratique» pour les utilisateurs sudo. Cependant, je peux convenir que pour une sécurité renforcée, la timestamp_timeoutdurée doit être beaucoup plus courte que 15 minutes.

Remarque : l' passwd_timeoutoption que j'ai mentionnée dans mon commentaire expire réellement l'invite de mot de passe lorsque vous ne saisissez pas le mot de passe pendant x minutes. C'est l'un des moments agréables où vous vous rendez compte que vous devriez lire man sudoersbeaucoup plus attentivement.

Sergiy Kolodyazhnyy
la source
2
notez que vous ne devriez jamais éditer /etc/sudoersdirectement, utilisez visudoplutôt qui vérifie les erreurs de syntaxe avant de le remplacer sudoerspar un fichier défectueux qui pourrait autrement vous empêcher complètement d'accéder à la racine
Tobias Kienzler
0

Je vous suggère de taper sudo apt-get upgrade && exitceci pour quitter le terminal après avoir terminé la mise à niveau. Lorsque la mise à niveau est annulée, le terminal ne fermera pas, mais je pense que ce ne sera pas le cas.

Marton
la source