Todos los que hemos administrado y usado equipos Windows o Mac hemos necesitado habilitar o deshabilitar usuario administrador o root. Hoy toca conocer como hacerlo en alguna distro de Linux, llámese Fedora, Debian, Ubuntu, etc, sabemos la importancia y el alcance que tiene el usuario root dentro del sistema ya que este usuario cuenta con el poder de administrar completamente el Sistema Operativo sin ninguna restricción.
Esto es importante para nuestros roles como administradores pero puede ser una puede convertirse en algo peligroso para toda la infraestructura si es manipulado de forma errónea por personas sin autorización o sin los conocimientos necesarios.
Sabemos que en algunas distros de Linux un usuario no puede tener acceso a ser un usuario root , por lo cual debemos anteponer el término sudo para que el comando que estamos ejecutando pueda ser procesado de forma correcta pero algunas tareas deben ser ejecutada exclusivamente como root por seguridad y no sólo con sudo.
Tener un usuario root supone riesgos pues posee privilegios absolutos sobre los cambios del sistema. Hay que tener bien protegida esta cuenta, algo problemático si olvidamos nuestra contraseña. Un detalle en algunas distros de Linux es que viene deshabilitada la cuenta root por defecto, algo que da lugar la uso del comando sudo. Pero si preferimos que nuestra cuenta sea root sin tener que andar usando este comando podemos habilitarla directamente.
Hoy veremos cómo podemos eliminar este usuario root de nuestros entornos Linux para evitar este tipo de inconvenientes. Aunque te lo mostramos cómo hacerlo para cualquier distro, aquí tienes un ejemplo de cómo hacerlo en Ubuntu:
También tener en cuenta que en los sistemas operativos UNIX, hablamos específicamente de Linux, podemos crear usuarios con permisos administrativos pero el usuario que tiene mas poder sobre los demás y que es de alto cuidado su manejo es el usuario root el cual se puede activar o usar sus permisos anteponiendo sudo, pero si este se maneja de la forma incorrecta sin duda que puede causar impactos negativos tanto en la estructura del sistema como en la información o servicios allí alojados.
El usuario root tiene acceso a todos los comandos y archivos con permisos totales tanto de lectura, escritura o ejecución y puede ser usado ejecutar cualquier tipo de tarea dentro del sistema operativo tal como para crear, actualizar o eliminar cuentas de otros usuarios, así como instalar, actualizar o eliminar paquetes de software con lo cual las consecuencias pueden ser drásticas.
Una buena práctica, en caso de que la información sea delicada o confidencial, es desactivar el usuario root de Linux, pero para ello debemos contar con una cuenta que posea privilegios administrativos con la cual se puede usar el comando sudo para obtener privilegios de usuario root.
Por ejemplo, podemos crear una cuenta así:
useradd -m -c "Solvetic" admin passwd adminCon el comando useradd creamos el usuario, el parámetro -m significa que vamos a crear el directorio de inicio del usuario y el parámetro -c permite especificar un comentario para este usuario.
Después de esto debemos añadir el usuario al grupo de administradores del sistema usando el comando usermod, con el interruptor -a el cual añade la cuenta de usuario y -G el cual especifica un grupo para agregar el usuario:
usermod -aG wheel admin (CentOS/RHEL) usermod -aG sudo admin (Debian/Ubuntu)Solvetic explicará las diversas formas para desactivar este usuario en Linux. (también una para activarlo).
1. Habilitar el usuario root en Linux
Empezamos con la forma de saber como habilitar un usuario root.
Si después de tener desactivado un tiempo el usuario root necesitamos volver a usarlo de nuevo, podemos habilitarlo nuevamente en el sistema usando el siguiente comando:
sudo passwd rootCon ese comando estará realizado.
En la ventana desplegada debemos establecer una contraseña para el usuario root.
2.
Deshabilitar usuario root y eliminar contraseña en Linux
Para ejecutar este proceso debemos cambiar el usuario con el cual hemos iniciado sesión en usuario root, para ello ejecutamos el comando siguiente e ingresamos nuestra contraseña de administradores.
sudo -s
Una vez estemos como usuarios root debemos ejecutar el siguiente comando para eliminar la contraseña del root:
passwd --lock root
Este comando nos va a permitir deshabilitar completamente el acceso al usuario root, para comprobarlo intentaremos ingresar como usuario root ingresando nuestra contraseña y veremos lo siguiente:
Otra de las opciones de seguridad que podemos usar con el usuario root es modificar su contraseña actual usando el comando:
passwd -d rootCon este comando estaría realizado.
3. Deshabilitar usuario root desde el Shell
La forma más simple para deshabilitar el inicio de sesión del usuario root es cambiar su shell desde el directorio /bin/bash o /bin/bash hacia /sbin/nologin, en el archivo /etc/passwd el cual puede ser abierto con cualquier editor:
sudo nano /etc/passwdVeremos lo siguiente:
Alli debemos cambiar la linea root:x:0:0:root:/root:/bin/bash por root:x:0:0:root:/root:/sbin/nologin:
Guardamos los cambios usando las teclas Ctrl + O y salimos del editor usando Ctrl + X.
De ahora en adelante, cuando el usuario root inicie sesión, se verá el mensaje "Esta cuenta no está disponible actualmente", este es el mensaje predeterminado, pero si deseamos cambiarlo y configurar un mensaje personalizado podemos hacerlo en el archivo /etc/nologin.txt.
4. Deshabilitar usuario root a través de Console Device (TTY)
Este método hace uso de un módulo PAM llamado pam_securetty el cual permite el acceso de root solo si el usuario está iniciando sesión en un TTY seguro, tal como se define en el listado en:
/etc/securettyCon este archivo anterior será posible especificar en qué dispositivos TTY se permitirá al usuario root iniciar sesión, de modo que, si desocupamos este archivo, se impedirá el inicio de sesión en cualquier dispositivo conectado.
Para crear un archivo vacío, ejecutamos lo siguiente:
sudo mv /etc/securetty /etc/securetty.orig sudo touch /etc/securetty sudo chmod 600 /etc/securettyCon ello estará creado.
Este método aplica solo a los administradores de pantalla como gdm, kdm y xdm) y otros servicios de red que inician un TTY., pero para otros programas como su, sudo, ssh se tendrá acceso a la cuenta root.
5. Deshabilitar inicio de root a través de SSH
Es un método común el acceder como root a través de SSH, de modo que para bloquear el inicio de sesión del usuario root, será necesario editar el archivo /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_configAlli debemos des-comentar la linea "PermitRootLogin" y establecer su valor en no.
Después de esto debemos actualizar el cambio usando alguna de las siguientes líneas:
sudo systemctl restart sshdO
sudo service sshd restartCon ello estará realizado.
6. Deshabilitar root a través de PAM
PAM (Pluggable Authentication Modules), es un método centralizado, modular y flexible de autenticación en sistemas Linux. PAM, en el módulo /lib/security/pam_listfile.so, permite realizar ciertas tareas para limitar los privilegios de cuentas específicas.
En este módulo sera posible establecer una lista de usuarios a los cuales no se les permitirá iniciar sesión a través de algunos servicios de destino tales como inicio de sesión, ssh y cualquier programa compatible con PAM.
Para lograr esto debemos acceder y editar el archivo para el servicio de destino en el directorio /etc/pam.d/ con alguna de las siguientes opciones:
sudo nano /etc/pam.d/loginO
sudo nano /etc/pam.d/sshdAlli añadiremos lo siguiente:
auth required pam_listfile.so \ onerr=succeed item=user sense=deny file=/etc/ssh/deniedusers
Guardamos los cambios y salimos del editor.
Ahora vamos a crear el archivo plano /etc/ssh/deniedusers el cual debe contener un elemento por línea y no ser accesible por otros usuarios:
sudo nano /etc/ssh/deniedusersProcedemos a otorgar permisos:
sudo chmod 600 /etc/ssh/deniedusersCon alguno de estos métodos hemos deshabilitado el usuario root en Linux.
Hemos visto como podemos obtener esta ventaja de seguridad habiendo deshabilitado el usuario root pero debemos hacer esto si es necesario ya que si a nuestro sistema no acceden muchos usuarios o sabemos que las personas que acceden son de confianza y autorizados no es necesario ejecutar esta tarea. Si aun así lo volvemos a necesitar, ya has visto lo sencillo que es volver a habilitar este usuario root en uno de los apartados.
Quizás también te hayas visto en la situación de tener que deshabilitar el usuario root en Ubuntu y aquí verás una forma sencilla de realizarlo.