Mensaje de error - sudo: must be setuid root
Al tratar de ejecutar cualquier programa con elevación de privilegios en Ubuntú mediante el comando sudo es posible observar el problema que describimos en el título de este artículo
sudo: must be setuid root
CAUSA
Este es un problema raro pero no infrecuente y suele estar ocasionado por alguno de los siguientes motivos:
-
Algo o alguien ha modificado los permisos del comando sudo haciéndolo inusable.
-
Hemos establecido el punto de montaje de la carpeta /usr en un directorio aparte y en el fichero fstab hemos indicado que lo queremos montar con el parametro nosuid
SOLUCIÓN.
Iniciamos nuestra distro de Ubuntu mediante la consola de recuperación (recovery console) seleccionando para ello la opción adecuada en el menú de arranque GRUB
# Verificamos que los permisos que aparecen para el comando sudo son correctos para ello tecleamos el comando
ls -l /usr/bin/sudo
# El comando debe producir una salida similar a esta:
-rwsr-xr-x 1 root root 156824 2011-09-12 07:06 /usr/bin/sudo
# Si los permisos o el propietario y grupo no fueran los reseñados en las linea anterior deberemos reasignarlos. Para reasignar el propietario y el grupo al superusuario root:
chown root:root /usr/bin/sudo
# Para proporcionar los permisos adecuados de ejecución.
chmod 4755 /usr/bin/sudo
# Finalmente reiniciamos el sistema mediante el comando:
reboot
Si fuera el caso de que hemos especificado el parámetro nosuid para montar la carpeta /usr en el fichero fstab, deberemos eliminar ese parametro. Podemos comprobar si este es nuestro caso mediante el comando:
cat /etc/fstab
El problema es que la consola de recuperación monta el sistema de ficheros con permisos de “solo lectura”, es decir, que desde aquí, no vamos a poder modificar el fichero fstab. Para poderlo modificar necesitaremos arrancar el sistema mediante un Live CD, y montar el sistema de ficheros donde tenemos ubicado el directorio /etc que normalmente está en el directorio raiz. Los comandos para llevar a cabo el proceso desde una terminal serían el siguiente.
# Para montar la partición donde está ubicado el directorio raiz.
mount -o remount, rw / /mnt/sda
Debemos asegurarnos de que el punto de montaje, en el ejemplo /mnt/sda, existe.
Solo nos queda editar el fichero fstab mediante nuestro editor de textos favorito y eliminar el parametro nosuid
Por último advertir de que montar el directorio /usr con el parametro nosuid puede traer otros efectos indeseados, como por ejemplo, no tener red o quedarnos sin sonido al no poder montar los drivers para estos dispositivos o bien recibir el siguiente mensaje de error al iniciar el entorno gráfico:
Warning, cannot open consolekit unable to open session. The permission of the setuid helper is not correct.


