Ejecutar sudo -v
. Por lo general, se usa para extender el tiempo de espera de su contraseña de sudo, pero se puede usar para determinar si tiene algún sudo
privilegios.
$ sudo -v
Sorry, user [username] may not run sudo on [hostname].
Extracto de la página man:
Si se le da la opción -v (validar), sudo actualizará la marca de tiempo del usuario, solicitando la contraseña del usuario si es necesario. Esto extiende el tiempo de espera de sudo por otros 5 minutos (o el tiempo de espera establecido en sudoers) pero no ejecuta un comando.
Si su usuario solo puede ejecutar específicos comandos, este comando funcionará, lo que indica que tiene permiso para ejecutar algo con diferentes privilegios. Si bien el mensaje se ve diferente cuando intenta ejecutar un comando, en este caso no tiene permiso (y no se envía ningún correo a la raíz ), aún es posible que se meta en problemas si los administradores leen /var/log/secure
.
$ sudo ls
[sudo] password for [username]:
Sorry, user [username] is not allowed to execute '/bin/ls' as root on [hostname].
Para averiguar qué se le permite ejecutar con diferentes privilegios, puede usar sudo -l
. Tenga en cuenta que este comando requiere que ingrese su contraseña.
Esto es muy simple. Ejecute sudo -l
. Esto mostrará una lista de todos los privilegios de sudo que tenga.
Esta es la versión compatible con secuencias de comandos:
timeout 2 sudo id && echo Access granted || echo Access denied
ya que no se atascará en la entrada de contraseña si no tiene el sudo
acceso.
También puede establecerlo en una variable como:
timeout 2 sudo id && sudo="true" || sudo="false"
echo "$sudo"