Administrar usuarios en la terminal de Linux
Administrar usuarios en la terminal de Linux es otra de las tareas rutinarias de cualquier administrador de sistemas.
Toda distro de GNU/Linux cuenta con un tipo de usuario especial que tiene acceso a todas las funciones del sistema, y el nombre de ese usuario es root.
El usuario root
El usuario root en Linux es el usuario más importante, se le conoce también como superusuario, y la forma más fácil de identificarlo es con el número de identificación cero (0), porque el único usuario que tiene ese número de identificación es root.
root –> ID=0
El usuario root es que tiene más privilegios en todo el sistema, y el proceso de instalación de una distro GNU/Linux, crea en automático este usuario.
La contraseña del usuario root la defines cuando instalas el sistema operativo, o se te comunica vía email tan pronto has rentado un servidor VPS como los que ofrece YourPersonalServer.Com.
Nota importante: cuando recibes una contraseña root vía email, es necesario cambiarla tan pronto sea posible para evitar riesgos de seguridad con tu servidor en el futuro.
Cualquier persona con la contraseña del usuario root puede hacer lo que sea dentro del sistema, sin restricciones.
El usuario root está reservado para la persona con máxima responsabilidad sobre el funcionamiento del sistema, y en nuestro caso, esa persona eres tú.
¿Cuándo es necesario hacer uso del superusuario (root)?
Emplear el acceso al usuario root se vuelve necesario cuando queremos ejecutar acciones privilegiadas dentro de un sistema Linux, como las siguientes:
–> Instalar, desinstalar, y modificar paquetes de software.
–> Arrancar, detener, activar y desactivar servicios del sistema.
–> Eliminar procesos privilegiados activos en el sistema.
–> Modificación de archivos de configuración.
–> Apagar o reiniciar el sistema, etc.
A continuación te comparto el videotutorial con la octava lección de tu Curso Gratis: Comandos Básicos de Linux:
En caso de que prefieras seguir con las instrucciones por escrito, continúa en las siguientes líneas porque he descrito para ti todo lo que muestro en el video de arriba.
Identificando al usuario root en la terminal de Linux
Para llevar a cabo esta parte de la lección, será necesario que te dirijas a la terminal en línea de práctica que se encuentra dentro de YourPersonalServer.Com
En la segunda lección de este Curso Gratis: Comandos Básicos de Linux te mostré un par de comandos que se usan para identificar a los usuarios, y estos son:
–> id
–> whoami
Si ejecutas ahora mismo cualquiera de esos comandos en la terminal de pruebas que estamos utilizando para estos tutoriales, te darás cuenta de que el usuario con que inicias sesión es el usuario root.
Sabiendo que tienes bajo tu control al usuario con los privilegios administrativos que se necesitan para crear, modificar, y eliminar a otros usuarios dentro del servidor, procedemos ahora al siguiente paso de esta práctica.
Crear un usuario normal en el sistema y otorgarle privilegios administrativos
Para crear un usuario administrador dentro del sistema se debe seguir un proceso secuencial simple de dos pasos:
–> Paso 1: crear un usuario normal.
–> Paso 2: asignarle privilegios de administrador a dicho usuario.
Crear un usuario dentro de la terminal de Linux
Para crear un usuario dentro de la terminal de Linux lo primero que debes saber es como se va a llamar ese usuario.
Las buenas prácticas y los administradores de sistemas con muchos años de experiencia recomiendan que los nombres de usuario no contengan más de 8 caracteres.
Si fuera estrictamente necesario, pueden contener más de 8 caracteres.
Para el caso de ejemplo que te muestro en el video de arriba, el usuario se llamará andres, así que el comando a ejecutar es el siguiente:
adduser andres
Al momento de ejecutar ese comando se abre una serie de datos básicos del usuario que debes llenar, y algunos de esos datos son opcionales.
Terminando de llenar los datos y confirmarlos al final del proceso de creación del usuario, puedes usar el siguiente comando para verificar la creación del directorio de inicio para el usuario recién creado:
ls /home
El resultado de ese comando debería ser una lista de directorios donde uno de esos directorios lleva el mismo nombre del usuario que acabas de crear.
Ahora es momento de asignarle los privilegios de administrador a ese usuario.
Asignar privilegios de administración (sudo) a un usuario en la terminal de Linux
Para lograr esta parte del ejercicio, es necesario modificar el usuario usando el comando usermod con las opciones para “agregar a un grupo”, y el nombre del grupo al que se va a agregar a nuestro usuario recién creado es “sudo”.
Antes de hacer ese cambio, puedes verificar a cuáles grupos pertenece el usuario recién creado, empleando el comando groups. En mi ejemplo, el usuario se llama andres, así que el comando a ejecutar es:
groups andres
El resultado del comando anterior debería ser algo como esto:
andres : andres
Lo que quiere decir que, el usuario andres, solo pertenece a un grupo que se llama andres.
Ahora bien, ejecuta el siguiente comando para agregar al usuario andres al grupo sudo:
usermod -aG sudo andres
El comando anterior si lo tuviera que leer en español diría algo como: “modifica el usuario andres agregándolo al grupo sudo“.
Podrás realizar de nuevo la consulta de a cuáles grupos pertenece el usuario andres para que veas que el resultado será diferente al obtenido la última vez que lo corriste:
groups andres
Ahora el resultado debe lucir así:
andres : andres sudo
Lo cual quiere decir que el usuario andres ahora pertenece a dos grupos:
–> El grupo andres
–> Y el grupo sudo
Usualmente, todo usuario que pertenezca al grupo sudo tiene los privilegios de administrador y es capaz de correr el comando sudo.
El comando sudo significa en inglés “Super User Do…”, que traducido al español sería algo así como “El superusuario dijo que hagas…”
En otras palabras, el comando sudo es lo que nos permite a nosotros, los administradores de sistemas, ejecutar comandos en nombre del Super-Usuario.
Ejemplo de sudo
Por ejemplo, considerando un caso hipotético en el que:
–> Estamos conectados en una terminal de Linux con nuestro usuario
–> Pertenecemos al grupo sudo y, por lo tanto, tenemos privilegios de administración
Al momento de ejecutar el siguiente comando:
sudo whoami
Lo que sucede a continuación es lo siguiente:
–> El sistema nos pedirá nuestra contraseña para verificar que realmente contamos con privilegios de administrador
–> Una vez introducida la contraseña, se elevan nuestros privilegios y se ejecuta el comando indicado (whoami)
–> Pero el comando no se ejecuta para nuestro ususario (andres), sino que se ejecuta para el Super Usuario (root)
–> Por lo tanto, la respuesta de ese comando es “root”, y no “andres”.
Usar el comando sudo es una de las rutinas más comúnes para un administrador de sistemas, y es recomendable siempre trabajar con un usuario que no sera root, para utilizar privilegios de administración solo cuando sea necesario.
Puedes obtener más información del comando sudo consultando su man page de la siguiente manera:
man sudo
Cambiar de usuario en la terminal de Linux
Cuando nos creamos un ususario administrador en la terminal de Linux, lo más recomendables es cambiarnos a ese usuario inmediatamente para comenzar a trabajar desde esa sesión, en vez de trabajar con la sesión del Super Usuario root.
Para ello, se utiliza el comando su que significa “Swap User” (“cambiar usuario” si lo traducimos del inglés al español).
El comando su
El comando su se ejecuta indicando como argumento el nombre del usuario al que queremos cambiar, como te muestro a continuación:
su andres
Si tuviera que leer el comando anterior en español sería una instrucción para la terminal en la que le digo: “cambia al usuario andres“.
Cuando el cambio lo haces desde el usuario root usualmente la terminal no te pedirá la contraseña del usuario andres para ejecutarlo.
Sin embargo, cuando el cambio lo haces desde un usuario que no es root, si necesitas introducir el password del usuario al que te estás cambiando por motivos de seguridad.
Puedes verificar que el usuario efectivamente ha cambiado ejecutando los comandos que te mostré en lecciones pasadas para identificar usuarios:
id
whoami
Otra cosa que notarás es que ahora en tu cursor el directorio donde te encuentras en la terminal de pruebas no aparece denotado con el símbolo tilde (~).
La tilde
En vez de la tilde, aparece el nombre del directorio donde te encuentras que es /root
Puedes confirmar que estás en ese directorio ejecutando el comando que te enseñé en lecciones pasadas para saber cuál es tu directorio actual:
pwd
La razón por la que el directorio actual deja de mostrarse con la tilde en tu cursor es porque al momento de cambiar de usuario, el directorio /root deja de ser tu directorio de inicio.
Recuerda que /root es el directorio de inicio para el usuario root, y ahora mismo ya no estás en la sesión de root.
La forma fácil y rápida de cambiarte al directorio de inicio de tu nuevo usuario con el que tienes sesión abierta en este momento es ejecutando el comando cd sin argumentos:
cd
Verás que de inmediato aparece de nuevo la tilde en tu cursor, indicando que te encuentras en tu directorio de inicio.
Podrás verificarlo ejecutando de nuevo el comando pwd:
pwd
Opcionalmente y como ejercicio de práctica para el nuevo usuario creado, puedes crear un archivo de texto llamado nota1 usando el comando:
nano nota1
Y una vez abierto el editor, ponerle cualquier texto para luego grabarlo y salirte con las combinaciones de teclas “Control O” y “Control X” respectivamente.
Un cat sobre ese archivo te mostrará el contenido de ese archivo recién creado sobre el directorio de inicio del nuevo usuario:
cat nota1
Crear un usuario sin privilegios en la terminal de Linux
Para crear un usuario sin privilegios en la terminal de Linux puedes seguir el mismo procedimiento anterior, y suprimir solamente la parte en la que le asignas privilegios dentro de la terminal de Linux.
Hay algo importante a saber y es lo siguiente: la terminal de pruebas gratuita que nos ofrece YourPersonalServer.Com tiene ciertas limitaciones que NO permite usar el comando sudo.
Por lo tanto, esta parte del ejercicio la realizaremos desde el usuario root y no desde el usuario administrador andres por medio del comando sudo como normalmente lo haríamos desde un servidor real.
Para regresarnos a nuestra sesión de root con que arrancamos al comienzo, solo necesitamos cerrar la sesión actual del usuario andres con el siguiente comando:
exit
Confirmas que ya tu usuario actual es root mediante el siguiente comando:
whoami
Y ejecutas el siguiente comando para agregar un usuario nuevo al sistema llamado rosa:
adduser rosa
Llenas el formulario con los datos básicos del nuevo usuario, y confirmas.
Ahora el nuevo usuario ha sido creado, y con tan solo no ejecutar el comando de asignación al grupo sudo como hicimos con el comando anterior, será suficiente para que los privilegios del nuevo usuario se mantengan estándar, es decir, este nuevo usuario no tendrá los privilegios de administrador si no se los asignas.
De la misma forma que hicimos con el usuario andres, puedes iniciar sesión en el nuevo usuario, irte a su directorio home, y crear un nuevo archivo llamado nota dos ejecutando secuencialmente los siguientes comandos:
su rosa
cd
nano nota2
# llenar info y guardar salir con Control O y Control X
cat nota2
# al terminar, regresar al usuario root con exit
exit
Eliminar los usuarios recién creados
Para esta parte del ejercicio es importante que estemos conectados como root, y para ello, puedes confirmar tu usuario actual con el comando pwd:
pwd
Te mostraré a continuación dos métodos de eliminar usuarios dentro de la terminal de Linux:
–> Método 1: eliminar al usuario de forma que su directorio de inicio y todo su contenido queden intactos.
–> Método 2: eliminar al usuario de manera que su directorio de inicio y todo su contenido sean eliminados intencionalmente.
Antes de comenzar, ilustraremos en la pantalla el contenido del directorio /home con el comando:
tree /home
Metodo 1:
Para el primer método, solo debes ejecutar el comando para eliminar usuarios sin ningún argumento, como te muestro a continuación:
deluser andres
El comando deluser significa “Delete User”, que traduciéndolo al español sería “Eliminar Usuario”.
Cuando ejecutamos ese comando sin argumentos específicos, lo que sucede es que la terminal elimina del sistema solamente el usuario, dejando intactos tanto su directorio de inicio, como su contenido.
Puedes verificar que todo ha quedado intacto volviendo a ejecutar el comando tree para mostrar el contenido del directorio /home:
tree /home
Método 2:
Para este segundo método, deberás ejecutar el comando para eliminar al usuario rosa.
Pero esta vez, deberás también introducir la opción que le indica a la terminal que debe eliminar su directorio de inicio, junto con todo su contenido:
deluser rosa --remove-home
Podrás confirmar nuevamente el contenido del directorio /home mediante el comando tree, para ver que el directorio de inicio del usuario rosa fue eliminado por completo:
tree /home
Claves para el éxito
–> root es el superusuario con privilegios administrativos que se crea automáticamente cuando se instala cualquier distribución de GNU/Linux.
–> Se pueden crear usuarios adicionales en un sistema GNU/Linux mediante el comando adduser.
–> A los usuarios se les puede otorgar privilegios administrativos para ejecutar acciones como si fuera el superusuario (lo vamos a ver en los servidores VPS) mediante el comando usermod -aG sudo.
–> Puedes eliminar usuarios del sistema mediante el comando deluser.
–> De preferencia debes iniciar sesión con el usuario root para casos en los que realmente sea necesario, porque tomarlo para uso diario se considera contrario a buenas prácticas.
En el próximo videotutorial te mostraré cómo leer y cambiar permisos de archivos y directorios en la terminal de Linux.
Recuerda dejarme tus comentarios, recomendaciones, preguntas y sugerencias, así como tu calificación de 5 estrellas si te gustó esta publicación.