Voilà le contexte :
j'ai un certain nombre de scripts qui font des remote command à d'autres machines via SSH ;
certaines de ces remote command sont déclarées dans le sudo des serveurs cibles pour permettre à un utilisateur/groupe d'avoir certains privilèges comme la gestion des user/password etc...
Il arrive dans certains cas ; lorsque par exemple j'intègre un nouveau serveur dans ma liste ; que le sudo ne soit pas paramétré ce qui fait qu'un mot de passe m'est demandé et je tombe sur le coup du timeout de sudo.
Sachant que le timeout est par défaut de 5 minutes et que le mot de passe est demandé trois fois, il est inenvisageable de rester dans cette situation.
Le but est donc de vérifier sur la/les machine(s) distantes si le sudo est bien paramétré.
J'ai bien essayé la commande "sudo -l" pour voir les commandes qui me sont autorisées mais un mot de passe m'est demandé....
Ma question est donc de savoir comment détecter/tester/vérifier les paramètres sudo pour m'assurer que le user TOTO est déclaré.
J'ai trouvé une solution qui me plait, cela consiste à positionner les paramètres suivants :
Defaults passwd_tries=0
Defaults passwd_timeout=1
Ainsi, si TOTO fait "sudo -l", il se fera envoyer bouler directement et on peut ainsi détecter s'il est bien déclaré ou pas.
Seulement, le pb de ces paramètres c'est qu'il faut les positionner dans le fichier sudoers ce qui ne satisfait pas car mes machines me sont livrées sans ces paramètres et je ne vais pas faire changer les master pour ça ....
Peut-on spécifier à la ligne de commande ces params à sudo ?
# deçu de sudo ?
Posté par ecid . Évalué à 2.
Non
Version Détaillée:
Ce n'est pas à l'utilisateur de déterminer la durée du time-out, ou le nombre d'essais.
Proposition:
Maintenant, d'après ce que tu décris, si on ne demande JAMAIS de mot de passe à TOTO pour lancer les commandes privilégiées (toutes les commandes pour TOTO sont en NOPASSWD), alors essaye avec la commande suivante:
echo | sudo -v -S
Si TOTO est bien configuré dans /etc/sudoers, alors la commande rend la main de suite et la valeur de retour est 0 (d'après mes tests, sudo -v ne demande le mot de passe que si il existe au moins une commande qui demande le mot de passe)
Si TOTO n'est pas bien configuré alors, sudo lira l'entrée standard (option -S), recevra un mauvais mot de passe (on a mis un echo de rien dans le pipe) et la commande se terminera après 2 ou 3 secondes (time-out entre 2 tentatives d'entrées de mot de passe) avec une valeur de retour à 1
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.