¿Qué es Root?
En Linux, el usuario root es el que tiene todos los permisos administrativos.
En Ubuntu y derivadas el usuario root viene desactivado por defecto, no podemos acceder con el comando su -
y poner la contraseña de root.
Aunque no tengamos activo el usuario root, si nos dejará logearnos directamente con el comando:
sudo su
Nos loguea como root desde la carpeta home del usuario que lo invocó.
También tendremos acceso a la cuenta root con:
sudo -i
Nos logea como root desde el directorio personal de súper usuario.
También podemos ejecutar comandos root escribiendo sudo
antes del comando, donde seremos root sólo durante la ejecución de ese comando.
sudo apt update
La contraseña es almacenada por 15 minutos. Después de eso, tendrás que introducir la contraseña nuevamente.
Si quieres matar ese tiempo de espera usa el modificador -k
sudo -k
Autenticación de sudo «Kill» para el usuario actual. Para el siguiente comando sudo, se volverá a requerir la contraseña.
Comandos root en Ubuntu
Es importante saber que el súper usuario se identifica por el símbolo (#), mientras que cuando estamos en usuario normal lo podemos identificar por el símbolo ($).
$: Se utiliza para representar o decir que estamos logueados con un usuario normal o diferente a root.
#: Se utiliza para saber que hemos entrado con privilegios de administrador o súper usuario o root.
Comando su
La función principal es cambiar de usuario. Al ejecutar el comando su nos pedirá la contraseña de root. Hay dos maneras de utilizarlo:
Poniendo el comando su seguido del nombre de un usuario del sistema:
su - otro_usuario
Se utiliza para cambiar de usuario sin tener que cerrar la sesión
Escribiendo solamente su
su -
Se utilizar para cambiar al usuario administrador
Comando sudo
A diferencia de su, que pide la contraseña de root, sudo sólo pide la contraseña del usuario.
La función de sudo es permitir que un usuario normal pueda ejecutar comandos como si fuera administrador.
Comando sudo su
En Ubuntu podemos ejecutar el comando sudo su para ejecutar varios comandos con permisos de administrador. Sólo nos pedirá la contraseña del usuario que lo ejecuta, siempre que ese usuario esté dentro del grupo admin.
¿Qué diferencias hay entre sudo y su?
Desde un usuario limitado, podemos usar dos formas para ejecutar comandos con privilegios de root:
sudo comando
su - root -c comando
-c. Nos permite pasar como argumento un comando, el cual se ejecutará después de hacer el cambio usuario de destino.
su - otro_usuario -c 'echo $LOGNAME'
La diferencia entre ambos es la siguiente:
- sudo nos pedirá el password de la cuenta que estemos usando para ejecutar un comando como root (podemos especificar que no nos pida password, aunque no es aconsejable desde el punto de vista de la seguridad).
- su nos pide el password del usuario «destino» con el que queremos ejecutar el comando. Eso significa que si no conocemos el password de root, no podremos usar «su – root».
Por lo tanto, si acceden varios usuarios a una misma máquina y queremos que usen su, deberemos comunicarles a todos el password de root para que accedan a una shell de root, mientras que usando sudo, los usuarios sólo deben conocer su propio password. Usando sudo, el password de root queda más protegido ante posibles robos de credenciales.
Habilitar cuenta de Root
Cuando instalamos Ubuntu normalmente sólo nos pide una contraseña para el usuario del sistema, luego podemos añadir más usuarios, pero si queremos utilizar el usuario root debemos asignarle una contraseña para usarlo por primera vez
Desde el terminal escribimos:
sudo passwd root
Nos pedirá la contraseña de usuario y la confirmación de la misma.
Ya podremos iniciar root con el comando su y la contraseña que le dimos.
El usuario root quedará activo mientras no cerremos el terminal o escribamos el comando exit, lo que puede ser peligroso ya que tenemos acceso a todo el sistema y podemos borrar archivos accidentalmente si no tenemos cuidado.
Deshabilitar cuenta de Root
Si queremos deshabilitar la cuenta de root lo haremos con
sudo passwd -l root
Abrir explorador de archivos como Root
Si queremos navegar por las carpetas de forma gráfica como administrador lo podemos hacer escribiendo en el terminal el comando sudo nautilus o tambien Alt + F2 y escribiendo el mismo comando.
Conclusión
Por todo lo mencionado anteriormente, es desaconsejable usar la cuenta root, y entre sudo y su, es claramente más recomendable usar sudo para ejecutar comandos con privilegios de root.
¿Por qué no es aconsejable usar la cuenta root?
La respuesta a esta pregunta no es otra que el principio de mínimo privilegio, por el cuál cada usuario debería poder acceder solamente a los recursos que necesite. No más.
Si una persona no tiene que reiniciar servicios de un sistema, no tiene por qué acceder a ese sistema con la cuenta root. Si una persona no tiene que instalar paquetes en el sistema, no necesita poder acceder como root. Si una persona sólo va a subir imágenes por SFTP a una carpeta, no necesita la cuenta root, basta con que tenga acceso a la carpeta en cuestión.
¿Y si un usuario necesita poder reiniciar un servicio, por ejemplo amuled, por si el servicio cae?
La respuesta es sencilla: usar sudo.
¡Truco! Si quieres repetir el último comando que introdujiste y no tener que volver a escribirlo:
sudo !!
Eso es todo.