De vérifier rapidement si sudo autorisations sont disponibles
Je veux être en mesure de vérifier rapidement si j'ai les deux ont sudo accès et de mon mot de passe est déjà authentifié. Je ne suis pas inquiet d'avoir sudo accès spécifiquement pour l'opération, je suis sur le point d'exécuter, mais ce serait un joli bonus.
Précisément ce que je suis en train d'utiliser cette pour est un script que je veux être praticable par tout un éventail d'utilisateurs. Certains ont sudo accès. Tous connaissent le mot de passe root.
Lors de l'exécution de mon script, je veux qu'il utilise sudo autorisations sans l'aide d'un mot de passe si c'est possible, et sinon, à demander de l' racine mot de passe (parce qu'ils pourraient ne pas avoir sudo accès).
Mon premier travail non-tentative de bifurquer sudo -S true
avec STDIN fermé ou la lecture à partir de /dev/null. Mais il demande le mot de passe et attend un couple de secondes.
J'ai essayé plusieurs autres choses, y compris attente de 0,3 sec pour voir si elle a réussi immédiatement, mais tout ce que j'ai essayer finit par échouer dans certaines situation. (Et non pas parce que mon délai est trop court.) Il est difficile de comprendre ce qui se passe, parce que je ne peux pas juste strace comme je le feriez normalement.
Une chose que je savoir ne fonctionne pas est de fermer STDIN ou de le raccorder à un tuyau avant d'exécuter sudo -S true
. J'espérais que ferait l'invite de mot de passe immédiatement échouer, mais il reste encore des invites et se comporte de façon étrange. Je pense qu'il pourrait vouloir un terminal.
Vous devez vous connecter pour publier un commentaire.
Avec des versions plus récentes de
sudo
il y a une option à cet effet:- Je utiliser
true
ici pour un no-op, mais vous pouvez utiliser n'importe quelle commande.Je ne sais pas ce que la raison ultime est de devoir faire cela, mais je pense que peut-être vous pourriez avoir besoin de repenser quelle que soit la raison de base est. Essayer de faire des choses compliqués, des choses inhabituelles avec des autorisations conduit fréquemment à des trous de sécurité.
Plus précisément, ce que le script est en train de faire peut-être mieux fait avec setuid au lieu de sudo. (J'aimerais aussi avoir à se demander pourquoi tant de gens ont le mot de passe root. Sudo est là précisément pour éviter de donner aux gens le mot de passe root.)
xauth -f /var/gdm/:0.Xauth list | xargs -n 3 xauth add
)Vous pouvez utiliser whoami pour obtenir l'utilisateur actuel.
Edit: Mais ça ne veut pas vous aider à trouver si vous êtes toujours authed faire sudo tâches... Hmm..
De course
semble fonctionner, même si elle retarde pendant une seconde avant d'échouer.