Comment savoir si je suis sudoer?

32

Comment se comporte le système Linux quand je ne suis pas sudoer? Voici ce qui se passe si j'essaie d'utiliser sudo:

server:/tmp>$ sudo cal
[sudo] password for user:
Sorry, try again.

Est-il possible que je ne connaisse pas mon mot de passe ou est-ce que cela signifie que je ne suis pas sudoer? (Sur un autre système de machine imprimé que je ne suis pas sudoer et l'incident sera rapporté)

Rasto
la source
Meilleure réponse que l’une des réponses ci-dessous: superuser.com/questions/553932/…
barnhillec

Réponses:

40

Pour savoir si un utilisateur particulier est d' avoir accès ou non sudo, nous pouvons utiliser -let -Uoptions en même temps.

Par exemple,

Si l'utilisateur dispose d'un accès sudo, il imprimera le niveau d'accès sudo pour cet utilisateur particulier.

   $ sudo -l -U pradeep
     User pradeep may run the following commands on this host:
     (ALL : ALL) ALL

Si l'utilisateur n'a pas d'accès sudo, il imprimera que l'utilisateur n'est pas autorisé à exécuter sudo sur localhost.

   $ sudo -l -U pradeep.c
     User pradeep.c is not allowed to run sudo on localhost.
pradeepchhetri
la source
4
Cela ne fonctionne pas pour moi. Au lieu de me donner des informations, il me redemande le mot de passe: server:/home/drasto>$ sudo -l -U drasto [sudo] password for drasto:Il y a une distribution Red Hat sur ce serveur si cela peut vous aider
Rasto
9

Vous pouvez utiliser le -ldrapeau pour lister vos privilèges.

-l[l] [command]
   If no command is specified, the -l (list) option will list the allowed (and forbidden)
   commands for the invoking user (or the user specified by the -U option) on the current
   host.  If a command is specified and is permitted by sudoers, the fully-qualified path
   to the command is displayed along with any command line arguments.  If command is
   specified but not allowed, sudo will exit with a status value of 1.  If the -l option
   is specified with an l argument (i.e. -ll), or if -l is specified multiple times, a
   longer list format is used.

Si vous n'êtes pas dans le fichier, vous devriez avoir l'erreur "pas dans le fichier sudoers" que vous avez vue sur l'autre machine.

Kevin
la source
2
Cela ne fonctionne pas non plus pour moi. Il me demande simplement un mot de passe:server:/home/drasto>$ sudo -l [sudo] password for drasto:
Rasto
1
Entrez votre mot de passe
Kevin
1
@ Kevin @ Michael Mon mot de passe ne fonctionne pas. Je ne connais qu'un seul mot de passe pour ce serveur, celui que j'utilise pour me connecter au serveur. Celui-ci ne fonctionne tout simplement pas quand on me demande mon mot de passe sudo (je l'ai essayé environ 100 fois, capslock, numlock, etc.). Mais toute cette réflexion n'a pas de sens! Je veux savoir si j'ai des privilèges sudo mais pour le savoir, j'ai besoin de privilèges sudo?! Pour exécuter sudo -lj'ai besoin d'un mot de passe sudo? Donc je dois être root pour savoir si je suis root?!
Rasto
1
@drasto Comme le dit le projet de loi, sudocherche votre mot de passe de connexion. Donc, si vous avez essayé cela et que cela ne fonctionne pas, soit sudo est horriblement mal configuré, soit vous êtes dans une prison où il ne peut ni voir ni lire les fichiers appropriés. De toute façon, vous n'avez en réalité aucune autorisation sudo.
Kevin
1
@ Kevin Ensuite, je suis probablement dans cette prison. En fait, je pense que je ne devrais pas avoir ces permissions sudo sur cette machine. Donc, j'ai été surpris quand il m'a demandé mon mot de passe sudo à la première place. Quoi qu'il en soit, c'est juste comme je l'ai écrit: mon mot de passe de connexion ne fonctionne pas.
Rasto
-1

Vous pouvez vérifier si vous êtes dans le groupe sudo, en utilisant la commande

groups

Dans un script shell, vous pouvez utiliser ceci:

if groups | grep "\<sudo\>" &> /dev/null; then
   echo yes
else
   echo no
fi
Schlacki
la source
1
Le groupe pourrait être sudo, admin, wheelou tout autre chose, et même avec l' appartenance à un groupe, un utilisateur peut refuser l' accès par des règles sudo spécifiques (ou l'inverse).
muru
Cela a trop de faux négatifs pour mon but (vérification de durcissement). La réponse de Kevin est plus définitive.
StockB