Je sais que c'est une très vieille question, mais voici ce que j'ai fait dans un script aujourd'hui. En supposant qu'être sudo signifie être capable d'exécuter n'importe quelle commande en tant que sudo (ou, au moins, la disponibilité)
CAN_I_RUN_SUDO=$(sudo -n uptime 2>&1|grep "load"|wc -l) if [ ${CAN_I_RUN_SUDO} -gt 0 ] then echo "I can run the sudo command" else echo "I can't run the Sudo command" fi
Cependant, si votre utilisateur a des restrictions dans le visudo, cette vérification ne suffira pas, par exemple, si votre utilisateur ne peut utiliser que la commande make. Essayez d'exécuter une commande dont vous savez qu'elle fonctionnera. Vous pouvez ajouter le filtre grep -v Désolé, par exemple :$(sudo -n uptime 2>&1|grep "load" | grep -v Désolé|wc -l) pour éviter ces faux positifs.
Le -n
L'option est disponible dans les nouvelles versions de sudo, mais comme vous l'avez indiqué, ce n'est pas une option. Il n'y a pas vraiment de moyen de faire ce que vous cherchez à moins d'essayer sudo et de voir s'il revient avec une invite de mot de passe. Si votre préoccupation est que vous souhaitez une indication visuelle, pourquoi ne pas démarrer do sudo /bin/bash pour démarrer une session root bash ? Notez que ce n'est pas sûr, mais c'est aussi quelque peu dangereux si quelqu'un se rend compte que votre invite change sur sudo.
Pour simplifier la réponse donnée par @wags007
if sudo -n true
then
sudo id
else
echo "sorry, but did not want to bother you"
fi
Cependant, si dans votre configuration https://www.sudo.ws/man/1.8.15/sudoers.man.html vous avez defaults mail_badpass
un e-mail sera envoyé pour chaque test dont le résultat est faux (ce qui aurait été demandé). Pour éviter une telle nuisance, changez cette partie de votre fichier sudoers en
Defaults mail_badpass
Defaults! /bin/true !mail_badpass
Par conséquent, des e-mails d'alerte de sécurité sont envoyés pour toutes les commandes sauf /bin/true. Eh bien oui, quelqu'un pourrait maintenant essayer de forcer brutalement un mot de passe en appelant sudo true
un nombre illimité de fois sans qu'aucun e-mail d'alerte de sécurité ne soit envoyé.
Remarque :Utilisez toujours visudo
au lieu de votre éditeur préféré pour éditer le fichier sudoers. Si vous ne le faites pas, vous risquez d'être bloqué.