web-dev-qa-db-fra.com

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

Est-il possible de faire en sorte que la commande Sudo me donne 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 lors de l'installation de nombreux paquetages. Il serait donc agréable s'il existe une commande ou une configuration pouvant affecter sa période d'utilisation.

25
TellMeWhy

Le comportement de Sudo est configuré dans le fichier /etc/sudoers. Il existe une option timestamp_timeout chargée de réinscrire l'utilisateur pour le mot de passe après un délai déterminé.

De homme 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 l'éditeur de texte nano.
  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

27

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’attente 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 nano éditeur de texte.

Cherchez cette ligne:

Defaults    env_reset

Et ajoutez timestamp_timeout=XX est le temps que vous souhaitez définir en minutes.

Donc, à 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 cela fait, sauvegardez et quittez.

Voir RootSudoTimeout

12
Ron

Essaye ça .

  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. Remplacez-le par exemple:

    Defaults        env_reset,timestamp_timeout=30
    

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

Voici la source: http://lifehacker.com/make-Sudo-sessions-last-longer-in-linux-1221545774

8
Michał Żywiecki

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 identifiant utilisateur. La valeur de délai d'attente est en minutes. Vous pouvez utiliser une valeur de -1 pour ne jamais arriver à expiration, puis taper Sudo -k pour tuer l'authentification. Vous avez donc besoin d'un mot de passe à nouveau.

Ou vous pouvez ajouter une entrée pour dire qu'une commande spécifique n'a pas besoin de mot de passe.

5
meuh

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. Pas besoin de se perdre dans les réglages par défaut.

5
Oliver Friedrich

Si vous recherchez ne solution qui ne modifie pas le fichier de configuration, par exemple lorsque vous souhaitez que le jeton dure plus longtemps pour une session spécifique, ou qu'il ne s'applique qu'après une action explicite, vous pouvez essayez ce qui suit:

# Work as is with Bash 4.1.2(1)-release and later, this might require some adaptation for other shells
(while [ true ]; do Sudo -v; sleep $((60*4)); done)&

Fondamentalement, le code précédent actualise le jeton Sudo toutes les 4 minutes, via un processus lancé en arrière-plan.

En effet, selon le manuel Sudo: "le délai d'invite du mot de passe par défaut pour la politique de sécurité sudoers est de 5 minutes ." Ainsi, en fonction de la stratégie spécifique du système, vous pouvez ajuster le temps que la boucle passe entre deux cycles.

1
psychoslave

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 noterai que si vous souhaitez modifier timestamp_timeout, il est préférable de le faire en créant un fichier dans /etc/sudoers.d plutôt que de modifier /etc/sudoers directement.

Alors tu devrais 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 qu'il 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. Mettre votre

Defaults timestamp_timeout=X

dedans, et enregistrez comme d'habitude. Ensuite, si une nouvelle version de /etc/sudoers apparaît, vous n'avez pas à choisir entre l'installation de la version la plus récente ou la conservation de vos modifications - vous obtiendrez automatiquement les deux.

1
fkraiem

Jusqu'ici, 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 que vous deviez 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 saisir Sudo ou un mot de passe. . :)

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

1
reirab