Exécutez sudo -v
. Il est généralement utilisé pour prolonger le délai d'attente de votre mot de passe sudo, mais peut être utilisé pour déterminer si vous avez un sudo
privilèges.
$ sudo -v
Sorry, user [username] may not run sudo on [hostname].
Extrait de la page de manuel :
Si l'option -v (valider) est donnée, sudo mettra à jour l'horodatage de l'utilisateur, en demandant le mot de passe de l'utilisateur si nécessaire. Cela prolonge le délai d'attente sudo de 5 minutes supplémentaires (ou quel que soit le délai d'attente défini dans sudoers) mais n'exécute pas de commande.
Si votre utilisateur n'est autorisé qu'à exécuter spécifique commandes, cette commande fonctionnera, indiquant que vous êtes autorisé à exécuter quelque chose avec différents privilèges. Bien que le message semble différent lorsque vous essayez d'exécuter une commande que vous n'êtes pas autorisé à faire dans ce cas (et aucun courrier n'est envoyé à root ), il est toujours possible que vous ayez des ennuis si les administrateurs lisent /var/log/secure
.
$ sudo ls
[sudo] password for [username]:
Sorry, user [username] is not allowed to execute '/bin/ls' as root on [hostname].
Pour savoir quoi vous êtes autorisé à courir avec des privilèges différents, vous pouvez utiliser sudo -l
. Notez que cette commande nécessite que vous saisissiez votre mot de passe.
C'est très simple. Exécutez sudo -l
. Cela listera tous les privilèges sudo dont vous disposez.
Voici la version compatible avec les scripts :
timeout 2 sudo id && echo Access granted || echo Access denied
car il ne sera pas bloqué sur la saisie du mot de passe si vous n'avez pas le sudo
accès.
Vous pouvez également le définir dans une variable comme :
timeout 2 sudo id && sudo="true" || sudo="false"
echo "$sudo"