Hace ya un tiempo, casi un mes, al intentar actualizar el sistema el bash me regaló un bonito error como este:

username is not in the sudoers file

Me quedé un poco en shock. No podía instalar nada, ni entrar en la cuenta del superusuario para darme permisos de administrador … nada que implicara usar el comando sudo.

¡¡¿Que mierdas había pasado?!!

Soy un poco dramas, así que lo primero que se me vino a la cabeza fue reintalar el sistema entero. Tras tranquilizarme un poco busqué en san google, descubrí que no era para tanto e incluso varios métodos para solucionarlo. Uno de ellos, editando el archivo /etc/sudoers, está muy bien explicado en este tutorial en la web de la marca española de portátiles Slimbook.

Yo escogí otro método, simplemente porque me pareció más sencillo e intuitivo. Básicamente lo que nos dice el sistema con el aviso username is not in the sudoers file es que nuestro usuario no está en el grupo que permite usar el comando sudo. Así explicado para que yo lo entienda. Todo proceso (dispositivo e incluso los nuestro usuario) de GNU/Linux pertenece a un grupo, por lo que si un usuario quiere usar algún proceso (samba, audio,…) o dispositivo (impresora, cdrom …) debe pertenecer a ese grupo. Por ejemplo, si quieres usar el cdrom del pc, tu usuario debe pertenecer al grupo cdrom.

En este caso, nuestro usuario debe estar el grupo sudo que no es otro que el grupo que permite realizar las tareas de administrador en el sistema1. En GNU/Linux, únicamente el super-usuario (no-humano) root tiene permisos para realizar cualquier proceso. Los administradores (personitas-humanas), incluidos en el grupo sudo, se contentan con realizar ciertas tareas como si fueran root mediante el comando sudo.

Para volver a tener nuestro usuario como administrador debemos añadir el grupo sudo a nuestro usuario. Para ello utilizaremos el comando usermod, que sirve para modificar una cuenta de usuario.

Si tenemos varios usuarios como administradores, basta con entrar con otro usuario diferente y ejecutar en la terminal:

sudo usermod -a -G sudo miusuario

Sustituyendo miusuario por el usuario en cuestión. Es importante añadir la opción -a -G al comando ya que por defecto usermod2 excluye los grupos a los que el usuario pertenecía previamente al añadir uno nuevo. Con esta opción el nuevo grupo se añade a los grupos a los que ya pertenece nuestro usuario.

Si, como es mi caso (y supongo que la mayoría), tenemos un único usuario como administrador tendremos que añadirlo al grupo sudo entrando en la consola del superusuario del Recovery Mode.

NOTA: Hay que tener cuidado ya que desde esta consola tenemos control total del ordenador y podemos armar un destrozo.

El Recovery Mode se encuentra en el menú del GRUB que aparece al iniciar el ordenador. Si no aparece pulsamos la tecla ESC justo después de que la tarjeta gráfica se haya ejecutado. Suele ser un parpadeo de la pantalla.

El menú del GRUB varia según la versión así que hay que buscar la Consola de superusuario dentro del Recovery Mode del último Kernel instalado entre las difentes opciones.

grub2
grub3grub1

Una vez que estamos en la consola del superusuario, añadimos nuestro usuario al grupo sudo con el comando de antes:

sudo usermod -a -G sudo miusuario

Y como antes, sustituimos miusuario por el usuario requerido y añadimos las opciones -a -G.

Tras reiniciar nuestro equipo nuestro usuario ya vuelverá a ser administrador** del sistema y podrá realizar tareas con *sudo, como actualizar el sistema o instalar paquetes.

Para segurarnos podemos comprobarlo listando todos los grupos del sistema ejecutando el comando:

cat /etc/group

fin!

Fuente: askubuntu, askubuntu, ubuntu-guia


  1. En Ubuntu 11.10 y versiones anteriores los administradores eran miembros del grupo admin. A partir de Ubuntu 12.04 los administradores pasan a pertenecer al grupo sudo, pero se mantiene admin para favorecer la compatibilidad. 
  2. Si el comando usermod no se encuentra en el sistema, podemos instalarlo mediante sudo apt install usermod
Anuncios