Comment faire en sorte que les autorisations de super-utilisateur durent plus longtemps qu'en utilisant sudo?

24

Existe-t-il un moyen de permettre à la commande sudo de me donner des autorisations pour une période plus longue que celle par défaut?

Il peut être pénible de devoir continuer à entrer le mot de passe sudo lorsqu’il nécessite l’installation de nombreux paquets. Il serait donc utile qu’il existe une commande ou une configuration pouvant affecter sa période d’utilisation.

    
posée TellMeWhy 06.09.2015 - 20:04
la source

7 réponses

26

Le comportement de sudo est configuré dans le fichier /etc/sudoers . Il y a timestamp_timeout option responsable de la repompting de l'utilisateur pour mot de passe après un temps spécifique.

De man sudoers

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.

Pour modifier ce paramètre, procédez comme suit:

  1. Dans le terminal, exécutez sudo visudo . visudo est utilisé spécifiquement pour éditer le fichier /etc/sudoers et utilise par défaut nano éditeur de texte.
  2. Recherchez les lignes commençant par Defaults . Ajouter la ligne suivante

    Defaults        timestamp_timeout=x
    

    où x est le nombre de minutes que vous souhaitez entre les réécritures

  3. Enregistrez le fichier avec Ctrl + O

réponse donnée Sergiy Kolodyazhnyy 06.09.2015 - 20:23
la source
11

De man sudoers :

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.  This
                       can be used to allow users to create or delete their
                       own time stamps via “sudo -v” and “sudo -k” respec‐
                       tively.

Comme vous pouvez le constater, le délai d’expiration par défaut de sudo est de 15 minutes. Vous pouvez modifier cette valeur dans /etc/sudoers .

Vous ne modifiez pas directement /etc/sudoers , vous utilisez plutôt visudo pour le faire.

De man visudo :

     visudo edits the sudoers file in a safe fashion, analogous to vipw(8).
     visudo locks the sudoers file against multiple simultaneous edits, pro‐
     vides basic sanity checks, and checks for parse errors.  If the sudoers
     file is currently being edited you will receive a message to try again
     later.

Donc, tapez sudo visudo dans un terminal, ce qui ouvrira le fichier /etc/sudoers dans l'éditeur de texte nano .

Recherchez cette ligne:

Defaults    env_reset

Et ajoutez timestamp_timeout=X X correspond à la durée que vous souhaitez définir en minutes.

Ainsi, à titre d'exemple:

Defaults    env_reset,timestamp_timeout=5

Si vous spécifiez 0, le mot de passe vous sera toujours demandé. Si vous spécifiez une valeur négative, le délai d'attente n'expirera jamais.

Une fois terminé, enregistrez et quittez.

Voir RootSudoTimeout

    
réponse donnée Ron 06.09.2015 - 20:23
la source
8

Essayez ceci.

  1. Exécutez la commande suivante dans un terminal:

    sudo visudo
    
  2. Faites défiler jusqu'à la ligne qui ressemble à ceci:

    Defaults        env_reset
    
  3. Changez-le en exemple:

    Defaults        env_reset,timestamp_timeout=30
    

Modifiez le délai 30 en minutes, en minutes, avant l'expiration du délai. Vous pouvez également le changer en 0 si vous voulez une invite de mot de passe chaque fois que vous exécutez sudo, ou -1 si vous ne voulez jamais d'invite de mot de passe Appuyez sur Ctrl + X pour terminer la modification, Y pour enregistrer les modifications et Entrée pour quitter.

Voici la source: lien

    
réponse donnée Michał Żywiecki 06.09.2015 - 20:26
la source
5

Je ne peux pas croire que la commande la plus simple:

sudo -s

n'est pas mentionné ici. Le commutateur "-s" vous donne une console avec les autorisations root, qui durent jusqu'à ce que vous la quittiez. Inutile de vous perdre dans les réglages par défaut.

    
réponse donnée Oliver Friedrich 07.09.2015 - 08:33
la source
4

Vous pouvez éditer le fichier /etc/sudoers (avec sudo visudo : soyez prudent) et ajouter une ligne comme

Defaults:myname timestamp_timeout=15 

myname est votre ID utilisateur. La valeur de délai d'attente est en minutes. Vous pouvez utiliser une valeur de -1 à ne jamais expirer, puis tapez sudo -k pour tuer l’authentification, vous avez donc besoin de un mot de passe à nouveau.

Vous pouvez également ajouter une entrée pour indiquer qu'une commande spécifique n'a pas besoin de mot de passe.

    
réponse donnée meuh 06.09.2015 - 20:23
la source
1

Jusqu'à présent, toutes les autres réponses semblent être centrées sur la modification du délai d'attente par défaut pendant combien de temps avant de devoir ressaisir votre mot de passe avec sudo . Cependant, si vous voulez juste pouvoir exécuter des commandes en tant que root sans ajouter chaque commande avec sudo , vous pouvez obtenir un shell root avec:

sudo -i

ou

sudo bash

ou

sudo <your preferred shell here>

Bien que tous ne lancent qu'un seul processus en tant que root, le processus en question s'avère être un shell qui vous permettra de démarrer autant de processus que vous le souhaitez en tant que root sans qu'il soit nécessaire de taper sudo ou un mot de passe. :)

Bien sûr, avec un grand pouvoir vient une grande responsabilité, ne faites pas de bêtises, etc.

    
réponse donnée reirab 07.09.2015 - 07:52
la source
1

Après avoir vu un trop grand nombre de questions d'utilisateurs ayant modifié des fichiers de configuration et confus quant aux raisons pour lesquelles leurs modifications ont été écrasées après la mise à niveau d'un paquet, je ferai remarquer que si vous souhaitez modifier timestamp_timeout , il est préférable de le faire par créer un fichier dans /etc/sudoers.d plutôt que de modifier /etc/sudoers directement.

Alors vous devriez faire

sudo visudo -f /etc/sudoers.d/timeout

(le nom du fichier peut être ce que vous voulez tant qu'il ne contient pas de point ( . ) ni se termine par un tilde ( ~ )). Au lieu d'ouvrir /etc/sudoers dans l'éditeur de votre choix, il ouvrira /etc/sudoers.d/timeout , normalement sous la forme d'un fichier vide car il n'existe pas. Mettez votre

Defaults timestamp_timeout=X

, et enregistrez comme d'habitude. Ensuite, si une nouvelle version de /etc/sudoers est disponible, vous n’avez pas à choisir entre l’installation de la nouvelle version ou la conservation de vos modifications - vous aurez automatiquement les deux.

    
réponse donnée fkraiem 18.12.2017 - 08:40
la source

Lire d'autres questions sur les étiquettes