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.
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é.
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:
Sudo visudo
. visudo
est utilisé spécifiquement pour éditer le fichier /etc/sudoers
et utilise par défaut l'éditeur de texte nano
.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
Enregistrez le fichier avec Ctrl + O
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=X
où X 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
Essaye ça .
Exécutez la commande suivante dans un terminal:
Sudo visudo
Faites défiler jusqu'à la ligne qui ressemble à ceci:
Defaults env_reset
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
Vous pouvez éditer le fichier /etc/sudoers
(avec Sudo visudo
: soyez prudent) et ajouter une ligne comme
Defaults:myname timestamp_timeout=15
où 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.
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.
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.
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.
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.