Cómo gestionar usuarios desde la línea de comandos en Linux

Una de las responsabilidades centrales de la administración de Linux es la gestión de usuarios. A través del uso de la línea de comandos, la creación de usuarios se puede completar de forma remota o programática. Una vez que hayas creado un usuario, puedes agregarlo a grupos o darle privilegios elevados. Además, puedes mantener un registro de auditoría sobre lo que se ha hecho en tu servidor y cualquier posible problema.

Si has desarrollado software o programado para la web, es posible que estés familiarizado con la política de nunca confiar en los usuarios. Este mismo principio se aplica en otras áreas del uso de computadoras en lo que respecta a la implicación del usuario. Solo da acceso a aquellos que lo necesiten y cuando lo necesiten. Una delegación generosa de privilegios podría permitir el acceso no especificado y no autorizado a la información y datos fundamentales de otros.

Visualización de usuarios existentes

Una de las formas más rápidas de ver usuarios es utilizar los comandos cat (concatenar) o more (paginador) para ver la lista de usuarios en el sistema. El archivo que necesitarás consultar es el archivo “/etc/passwd”. Este archivo almacena todas las cuentas de usuario y la información de inicio de sesión de los usuarios.

sudocat/etc/passwd

Utilizando el comando useradd

useradd es un binario de bajo nivel disponible en la mayoría de las distribuciones. Este comando se utiliza típicamente menos debido a que es menos amigable e intuitivo en comparación con el comando adduser. Sin embargo, hay muy pocas diferencias y cualquiera de los dos se puede usar.

Para obtener más información sobre useradd, ejecuta el comando man o añade --help para obtener un resumen rápido.

man useradd
useradd --help

linux-useradd-help

Para agregar un usuario utilizando useradd, escribe useradd y el nombre del inicio de sesión que deseas crear.

sudo useradd --create-home testuser

En el caso anterior, se creará el usuario “testuser”. Por defecto, este comando solo creará el usuario y nada más. Si necesitas un directorio personal para este usuario, añade el flag --create-home para crear el directorio personal para el usuario.

Utilizando el comando adduser

El comando adduser es un script de perl que creará el usuario de manera similar al comando useradd. Lo que lo hace diferente es que es un comando interactivo y te pedirá que establezcas la contraseña, la ruta del directorio personal, etc. Ten en cuenta que en algunas distribuciones, como Red Hat y CentOS, adduser es un enlace simbólico a useradd, y en otras distribuciones como Arch Linux, adduser viene como un paquete que no está instalado por defecto.

Al usar este comando, se creará un grupo para el usuario utilizando el inicio de sesión del usuario por defecto. Otros valores predeterminados pueden encontrarse típicamente en el archivo de useradd en “/etc/default”.

En este archivo puedes cambiar los ajustes predeterminados para los usuarios creados con useradd, como el shell y el directorio personal.

linux-useradd-conf

Ejecuta el comando adduser similar a lo siguiente:

sudo adduser testuser

linux-adduser

Esto te pedirá los valores predeterminados que deseas establecer y te preguntará por la contraseña.

También lee: Cómo gestionar la contraseña de tu usuario desde el terminal en Linux

Contraseñas y seguridad

Agregar una contraseña para un usuario requerirá ejecutar el comando passwd.

sudopasswd testuser

Sin privilegios de superusuario, ejecutar passwd solo cambiará la contraseña del usuario que ha iniciado sesión. Este comando probará la complejidad de la contraseña. En Ubuntu, los requisitos de la contraseña se establecen en el archivo common-password ubicado en “/ec/pam.d.” Más información sobre cómo actualizar la complejidad se puede encontrar en la página man de pam-auth-update.

linux-pam-auth-man

Actualizando la información del usuario

Una vez que un usuario está en el sistema, puedes revisar el archivo “/etc/passwd” para ver la información del usuario y la contraseña encriptada. Si necesitas realizar cambios en un usuario, deberás utilizar el comando usermod.

linux-usermod-man

Como ejemplo, para cambiar el id de usuario de la cuenta testuser4 creada anteriormente, ejecutarías el comando:

sudo usermod -u2022 testuser2

Luego puedes revisar los cambios en el archivo “/etc/passwd”.

Ten cuidado al cambiar información crítica como el nombre de inicio de sesión, o como en este caso, el id de usuario. Revisa la página man de usermod para ver lo que necesitarás hacer si esos elementos son cambiados.

Agregando usuarios a un grupo

Hay momentos en que necesitas agregar usuarios a un grupo para que tengan el permiso necesario para ejecutar ciertas tareas.

Para agregar un usuario a un grupo:

sudo usermod -a-G groupname username

Ten en cuenta que el flag -a es necesario para “anexar” el grupo al usuario. De lo contrario, podrías arriesgarte a eliminar al usuario del grupo “sudo” si se supone que el usuario debe tener permiso de superusuario.

Alternativamente, puedes usar el comando gpasswd para agregar/eliminar usuario de/a grupo.

sudo gpasswd -a username groupname

Para eliminar un usuario de un grupo:

sudo gpasswd -d username groupname

Eliminando usuarios

Similar a los otros comandos de usuario, eliminar un usuario está precedido por “user” y la acción. En este caso, necesitarás usar el comando userdel.

linux-userdel-man

Ten en cuenta que userdel no eliminará un usuario si hay procesos utilizando la cuenta de ese usuario.

sudo userdel testuser4

Visualizando los registros de usuarios

Dependiendo de tu distribución, deberás verificar el registro de autenticación o el registro seguro ubicado en “/var/log” para revisar los inicios de sesión de los usuarios. Este archivo de registro te proporcionará los inicios de sesión en tu sistema tan pronto como ocurran. Este es un elemento crítico para monitorear eventos en caso de una violación y solo para asegurar que las cosas estén funcionando como se desea.

sudotail/var/log/auth.log

La gestión de usuarios es una parte crucial de la gestión de servidores Linux si hay más de una persona que utilizará tu sistema. Utilizar la línea de comandos te permitirá administrar rápidamente a los usuarios, así como tener un historial de creación de cuentas y cambios. Quizás uno de los mejores usos sería automatizar la creación con un script de shell si se necesitan múltiples cuentas a la vez.

De cualquier manera, asegúrate de revisar tus cuentas de manera regular y elimina cuentas que ya no se necesiten. Asegúrate de que el acceso se otorgue solo a quienes actualmente necesitan acceso y monitorea tus registros con frecuencia.