¿Cómo puedo saber si soy sudoer?

32

¿Cómo se comporta el sistema Linux cuando no soy sudoer? Esto es lo que sucede si intento usar sudo:

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

¿Es posible que simplemente no conozca mi contraseña o esto significa que no soy sudoer? (En otro sistema de máquina impreso que no soy un sudoer y se informará el incidente)

Rasto
fuente
Mejor respuesta que cualquiera de las siguientes: superuser.com/questions/553932/…
barnhillec

Respuestas:

40

Para saber si un usuario en particular tiene acceso a sudo o no, podemos usar -ly -Uopciones juntas.

Por ejemplo,

Si el usuario tiene acceso a sudo, imprimirá el nivel de acceso a sudo para ese usuario en particular.

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

Si el usuario no tiene acceso a sudo, imprimirá que el usuario no tiene permitido ejecutar sudo en localhost.

   $ sudo -l -U pradeep.c
     User pradeep.c is not allowed to run sudo on localhost.
Pradeepchhetri
fuente
44
Esto no funciona para mi. En lugar de darme información, me pide contraseña nuevamente: server:/home/drasto>$ sudo -l -U drasto [sudo] password for drasto:hay una distribución de Red Hat en ese servidor si eso ayuda
Rasto
9

Puede usar la -lbandera para enumerar sus privilegios.

-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 no está en el archivo, debería recibir el error "no en el archivo sudoers" que vio en la otra máquina.

Kevin
fuente
2
Esto tampoco me funciona. Solo me pide contraseña:server:/home/drasto>$ sudo -l [sudo] password for drasto:
Rasto
1
Ingrese su contraseña
Kevin
1
@Kevin @Michael Mi contraseña no funciona. Solo conozco una contraseña para ese servidor y esa es la que uso para iniciar sesión en el servidor. Ese simplemente no funciona cuando me piden mi contraseña de sudo (lo he intentado aproximadamente 100 veces, mayúsculas, bloqueo numérico, etc.). ¡Pero todo el pensamiento no tiene sentido! ¡Quiero saber si tengo privilegios de sudo pero para descubrirlo necesito privilegios de sudo ?! Para ejecutar sudo -lnecesito sudo contraseña? ¿Entonces tengo que ser root para saber si soy root?
Rasto
1
@drasto Como dijo bill, sudoestá buscando su contraseña de inicio de sesión. Entonces, si lo ha intentado y no funciona, o sudo está terriblemente mal configurado o está en una cárcel de algún tipo donde no puede ver ni leer los archivos adecuados. De cualquier manera, no tiene permisos de sudo.
Kevin
1
@ Kevin Entonces probablemente esté en esa cárcel de algún tipo. En realidad, creo que no debería tener esos permisos de sudo en esa máquina. Así que me sorprendió cuando me pidió mi contraseña de sudo en primer lugar. De todos modos, es tal como lo escribí: mi contraseña de inicio de sesión no funciona.
Rasto
-1

Puede verificar si está en el grupo sudo, utilizando el comando

groups

En un script de shell, es posible que desee utilizar esto:

if groups | grep "\<sudo\>" &> /dev/null; then
   echo yes
else
   echo no
fi
Schlacki
fuente
1
El grupo podría ser sudo , admin, wheelacceso, o algo completamente distinto, e incluso con la pertenencia a un grupo, un usuario individual puede que negó sudo a través de normas específicas (o al revés).
muru
Esto tiene demasiados falsos negativos para mi propósito (verificación de endurecimiento). La respuesta de Kevin es más definitiva.
StockB