Cuando usamos la Terminal en Linux lo más común es que estemos conectados con un usuario sin muchos privilegios, y en muchos casos surge la necesidad de utilizar el usuario root, por lo tanto usamos "sudo" para obtener un poco de magia, y el problema es que si lo queremos usar directamente en los sistemas más modernos el inicio de sesión de root está desactivado. También podría ser simplemente que ocupemos cambiarnos entre diferentes usuarios para preservar los permisos de carpetas y archivos cada que ejecutemos comandos. Estos pasos aplican para cualquier distribución de Linux, incluidos Debian y Ubuntu.
⇧
1. Casos de uso reales
Estos son algunos casos que necesitamos resolver:
- En el escritorio de Debian necesitamos realizar una tarea desde la Terminal, pero para ello necesitamos utilizar el usuario root.
- En el escritorio de Ubuntu necesitamos realizar una tarea administrativa desde la Terminal, en este caso podemos utilizar el comando "sudo", pero se vuelve molesto cuando tenemos muchas cosas que hacer, y lo necesario es usar root.
- Estamos conectados como root, pero necesitamos ejecutar "composer" con el usuario propio del proyecto o carpeta.
2. Diferentes formas de cambiar de usuario
2.1. Arranque con "Modo recuperación" o "Recovery mode"
Primeramente en el caso de "root", no hay que olvidarnos que podemos entrar en el modo de recuperación. Normalmente es la segunda opción al iniciar en el menú de arranque, y así entramos como root
directamente.
2.2. Cambiar desde cualquier usuario con o sin privilegios
Cuando ya estamos usando otro usuario sin tantos privilegios, lo ideal es utilizar el comando "su".
De esta manera accedemos con root:
su root
Incluso si dejamos el comando su sin argumentos se asume que el usuario es root.
Después nos pedirá la contraseña de root, y automáticamente accederemos. Más sencillo no puede ser, ya sea por ejemplo, si olvidamos seleccionar la opción de recuperación desde el inicio, ahora ya no tendremos que reiniciar el ordenador, simplemente abrimos la terminal y colocamos el comando anterior.
Cabe resaltar que funciona con cualquier usuario y no solo con root.
su usuario
En este último caso nos pide la contraseña de "usuario" en caso de que no tengamos privilegios.
2.3. Cambiar con usuarios limitados por sudo pero con privilegios
Lo normal es un usuario típico de Ubuntu después de su instalación. Usaremos el siguiente comando en el caso de que estemos usando Ubuntu con un usuario limitado por sudo, para poder acceder a root:
sudo su -
Para acceder a cualquier otro usuario sin usar la contraseña del otro usuario, más bien usando nuestra propia contraseña:
sudo su usuario
⇧
3. Para salir del usuario
Para regresar al usuario principal solo tenemos que usar el comando "exit"
.
exit
Solo hay que tener cuidado al estar usando una conexión SSH, de no ejecutarlo con nuestro usuario principal porque se cerrará la conexión.
⇧4. Detalles extras que nos podrían interesar
Me decidí a compartir esto porque con mi poca experiencia en Linux noté que usar root es muy necesario, y a los meses descubrí que era posible de forma muy sencilla sin el uso de "sudo". También en el caso de manejar varios usuarios como cuando se ejecutan varias instalaciones de páginas web en un mismo servidor.
Para saber que usuario estamos usando actualmente ejecutamos el comando whoami
y nos aparecerá. También podemos saber que usuario estamos usando revisando el prompt de la terminal, justo antes de la arroba, el formato es usuario arroba sistema, pero en algunos sistemas puede estar muy personalizado y no mostrarlo.
5. Problemas de seguridad
Si bien es bastante útil hay que usarlo con moderación, y solo en casos estrictamente necesarios. En lo personal he cambiado accidentalmente el propietario y grupo de todas las carpetas del sistema con el comando "chown" por usar root de forma indiscriminada, causando que mi instalación de Ubuntu dejará de funcionar completamente, la única solución fue reinstalar todo y recuperar los datos manualmente directos desde el disco. Este es solo un caso y fue en un equipo personal, el detalle es que también nos podría pasar en un servidor web en producción o en cualquier servidor crítico. El comando "chown -hR" fue en mi caso, en otro más grave podría ser "rm -fr".
⇧