Orden no encontrada (command not found). Utilicemos “su -” en lugar de “su” y está puede ser la solución en Debian Buster.

Como señalan en wiki.debian.org, el comando “su” en Debian se proporcionaba por el paquete “shadow», pero en Debian Buster es el paquete “util-linux”; y esto es así desde que Buster era “testing”. Este cambio ha supuesto que “su” ya no altera la variable PATH (ruta) de manera predeterminada. Cuando abrimos en terminal sesión de superusuario con “su”, su ruta (PATH) puede no contener determinados directorios, como /sbin, y, consecuentemente, muchos comandos de administración del sistema fallarán; simplemente no se encuentran y el sistema responde “orden no encontrada” (command not found).orden no encontrada, command not found

1. “Orden no encontrada”, entonces “su -”

Afortunadamente para los usuarios normales de escritorio “apt” funciona con “su”; al menos para mi es lo más rutinario. También “su” abre algunas aplicaciones como usuario root; DisplayCal, que es lo que usualmente necesito. Sin embargo, son otros muchos comandos los que no funcionan con “su”. Por ejemplo, los que yo me he encontrado son dpkg, adduser, ufw o hddtemp, pero hay más.

La solución es utilizar “su –” en lugar de “su”, como se recomienda en NewInBuster (wiki.debian.org). De esta forma se abre un inicio de sesión que obliga a cambiar PATH. Efectivamente, abriendo en terminal la sesión de superusuario con “su –” estarán disponibles todas, o casi todas, las opciones de administración del sistema.

Ahora bien, hay que tener en cuenta que cambia el directorio de trabajo. Por ejemplo, si abrimos la terminal en el navegador de archivos en la carpeta “Descargas” para instalar un paquete .deb con dpkg, el directorio cambiará. En ese caso, simplemente tendremos que cambiarlo de nuevo para ejecutar dpkg.

usuario@debian:~/Descargas$ su – (contraseña)
root@debian:~# cd /home/usuario/Descargas
root@debian:/home/usuario/Descargas# dpkg -i paquete_a_instalar

2. Cómo hacer para que “su” funcione como antes

Es posible, asimismo, configurar el sistema para que “su” tenga un comportamiento similar al anterior (wiki.debian.org). Es decir, que ahora “su” funcione también como “su -”. Esto se consigue agregando la línea de texto “ALWAYS_SET_PATH yes” en el archivo /etc/login.defs.

Está línea la situaremos en el archivo login.defs exactamente como se muestra seguidamente:

# *REQUIRED* The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ALWAYS_SET_PATH yes

Para hacer esto, abrimos terminal con “su”. Primero, hacemos una copia de seguridad del archivo login.defs; por ejemplo en Documentos de nuestro usuario (pepe, benjamin, maria, o el que sea). Segundo, editamos el archivo /etc/login.defs con nano; agregamos la línea mencionada en la situación concreta; y, finalmente, guardamos los cambios (Ctrl-O) y salimos del editor (Ctrl-X).

$ su (contraseña)
# cp /etc/login.defs /home/benjamin/Documentos
# nano /etc/login.defs

orden no encontrada, command not found

3. Mi conclusión por el momento

Por el momento, creo que dejaré las cosas como están. Es decir utilizaré “su”, salvo en aquellas ocasiones que sé que he de utilizar “su –”; y, evidentemente, cuando me surja el mensaje “orden no encontrada”, pues “su –”. No obstante, he probado el cambio de configuración en login.defs (apartado 2), y en principio funciona. Es bueno saber que existen opciones, pero, aún así, me adaptaré a los tiempos que corren y “ya veremos”.

Saludos flamencos,

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.