GNU/Linux >> Tutoriales Linux >  >> Linux

Sudo:¿hay un comando para verificar si tengo Sudo y/o cuánto tiempo me queda?

Sé que esta es una pregunta muy antigua, pero aquí está lo que hice en un guión hoy. Suponiendo que ser sudo significa poder ejecutar cualquier comando como sudo (o, al menos, tiempo de actividad)

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

Sin embargo, si su usuario tiene restricciones en el visudo, esta verificación no será suficiente, por ejemplo, si su usuario solo puede usar el comando make. Intente ejecutar algún comando que sepa que funcionará. Puede agregar el filtro grep -v Sorry, por ejemplo:$(sudo -n uptime 2>&1|grep "load" | grep -v Sorry|wc -l) para evitar esos falsos positivos.


El -n La opción está disponible en las versiones más nuevas de Sudo, pero como dijiste, esa no es una opción. No hay una forma real de hacer lo que está buscando a menos que simplemente pruebe Sudo y vea si regresa con un mensaje de contraseña. Si su preocupación es que desea una indicación visual, ¿por qué no comenzar a hacer sudo /bin/bash para iniciar una sesión de root bash? Tenga en cuenta que esto es inseguro, pero también es algo inseguro si alguien se da cuenta de sus cambios rápidos en sudo.


Para simplificar la respuesta dada por @wags007

if sudo -n true
then
  sudo id
else
  echo "sorry, but did not want to bother you"
fi

Sin embargo, si en su configuración https://www.sudo.ws/man/1.8.15/sudoers.man.html tiene defaults mail_badpass se enviará un correo por cada prueba que dé como resultado falso (habría solicitado). Para evitar tales molestias, cambie esa parte de su archivo sudoers a

Defaults       mail_badpass
Defaults!      /bin/true !mail_badpass

Como resultado, se envían correos de alerta de seguridad para todos los comandos excepto /bin/true. Bueno, sí, ahora alguien podría intentar forzar una contraseña llamando al sudo true un número ilimitado de veces sin que se envíe ningún correo de alerta de seguridad.

Nota:utilice siempre visudo en lugar de su editor favorito para editar el archivo sudoers. Si no lo hace, corre el riesgo de quedar bloqueado.


Linux
  1. ¿Cómo verificar si una tubería está vacía y ejecutar un comando en los datos si no lo está?

  2. Trucos de la línea de comandos:cómo identificar la fecha y la hora de la ejecución de un comando de Unix

  3. Cómo hacer que el comando ls de Linux muestre el segundo en la marca de tiempo

  4. ¿Cómo comprobar si tengo acceso a Sudo?

  5. ¿Cómo compruebo cuánto espacio libre queda en un dispositivo para crear una partición?

[Consejos de Bash] Cómo cp o mv y cd en un solo comando

Cómo cambiar la fecha, la hora y la zona horaria en Debian 10

5 formas de verificar cuánta RAM está instalada y utilizada en CentOS 8

Cómo verificar la información de la CPU en Linux

Cómo verificar el historial de reinicio del sistema y el tiempo de inicio en Linux

¿Cómo verificar el uso de Inode desde cPanel y la línea de comandos?