Error “user is not in the sudoers file. This incident will be reported.” Habilitar permiso de ejecución de sudo

El error user is not in the sudoers file. This incident will be reported. en máquinas Linux basadas en Debian ocurre cuando tratamos de ejecutar una orden de root por consola usando sudo con otro usuario del sistema y éste no está reflejado en el archivo /etc/sudoers como usuario con permisos para usar sudo. Para solucionar esto basta con añadir la línea siguiente en el archivo /etc/sudoers especificando el nombre del usuario al que queremos dar permiso de uso de sudo:
username ALL=(ALL) ALL

Para modificar el archivo /etc/sudoers podemos hacerlo como root usando cualquier editor de texto, con el comando echo o, como manda Debian usando visudo, por que visudo? porque es mucho más seguro como veremos después. Al usar visudo se abre el archivo /etc/sudoers con el editor de texto que haya configurado por defecto en el sistema, si no lo hemos cambiado será vi quien abra el archivo, yo no me llevo bien con vi y suelo usarvim, si es tu caso y quieres modificar el editor de texto por defecto en Debian aquí tienes como hacerlo.
Vamos a proceder con visudo, lo que hay que hacer es ejecutarlo como root:
root@debianGUI:# visudo

Y se abre el archivo /etc/sudoers directamente:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

Si lo hemos abierto con vim pulsamos i para entrar en modo inserción y poder modificarlo, nos situamos justo debajo de la línea root ALL=(ALL) ALL y añadimos la correspondiente al nuevo usuario con permisos de ejecución de sudo:
username ALL=(ALL) ALL

Si estamos con vim pulsamos escape para salir del modo inserción y seguidamente escribimos :x para guardar cambios y salir, si hemos hecho bien los cambios volveremos al intérprete de comandos pero si hemos introducido algún error de sintaxis visudo se quejará. Esta es una de las causas importantes para usar visudo. Si lo hemos hecho bien entonces ya se podrá usar sudo con el usuario especificado.
A continuación copio la parte referente a visudo de un buen articulo publicado en LinuxTotal:
visudo

Permite la edición del archivo de configuración de sudo sudoers. Invoca al editor que se tenga por defecto que generalmente es ‘vi’. visudo cuando es usado, bloquea el archivo /etc/sudoers de tal manera que nadie más lo puede utilizar, esto por razones obvias de seguridad que evitarán que dos o más usuarios administradores modifiquen accidentalmente los cambios que el otro realizó.

Otra característica importante de visudo es que al cerrar el archivo, verifica que el archivo este bien configurado, es decir, detectará si hay errores de sintaxis principalmente en sus múltiples opciones o reglas de acceso que se tengan. Por esta razón no debe editarse /etc/sudoers directamente (perfectamente posible ya que es un archivo de texto como cualquier otro) si no siempre usar visudo.

Si al cerrar visudo detecta un error nos mostrará la línea donde se encuentra, y la pregunta “What now?”:
>>> sudoers file: syntax error, line 15 <<<
What now?  

Se tienen tres opciones para esta pregunta:

e – edita de nuevo el archivo, colocando el cursor en la línea del error (si el editor soporta esta función.)
x – salir sin guardar los cambios.
Q – salir y guarda los cambios.

Por defecto el archivo de configuración es /etc/sudoers pero se pueden editar otros archivos que no sean ese y que se aplique la sintaxis de sudo, y esto se logra con la opción -f (visudo -f /otro/archivo).

Si tan solo se desea comprobar que /etc/sudoers está bien configurado se usa la opción -c, toma por el archivo de configuración por defecto o si no se indica algún otro.
#> visudo -c
/etc/sudoers file parsed OK

La opción -s activa el modo ‘estricto’ del uso de visudo, es decir no solo se comprobará lo sintáctico sino también el orden correcto de las reglas, por ejemplo si se define el alias para un grupo de comandos y este se usa antes de su definición, con esta opción se detectará este tipo de errores.


Fuente:

Comentarios

Entradas populares de este blog

Comandos Solaris

MikroTik QoS Script generator

Comando para eliminar saltos de linea en fichero o archivo desde consola Linux