GNU/Linux >> Tutoriels Linux >  >> Linux

Sudo - existe-t-il une commande pour vérifier si j'ai sudo et/ou combien de temps il me reste ?

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é.


Linux
  1. Comment vérifier si un système Linux est 32 bits ou 64 bits

  2. Comment copier des fichiers et changer la propriété, les autorisations en même temps

  3. Astuces de ligne de commande :comment identifier la date et l'heure d'exécution d'une commande Unix

  4. Comment puis-je vérifier qu'un fichier existe et exécuter une commande sinon?

  5. Comment faire en sorte que la commande Linux ls affiche la seconde dans l'horodatage

[Bash Tips] Comment cp ou mv et cd en une seule commande

Comment changer la date, l'heure et le fuseau horaire dans Debian 10

5 façons de vérifier la quantité de RAM installée et utilisée sur CentOS 8

Comment vérifier les informations du processeur sous Linux

Comment vérifier l'historique de redémarrage du système et l'heure de démarrage sous Linux

Comment vérifier l'utilisation d'Inode à partir de cPanel et de la ligne de commande ?