¿Cómo agregar, modificar y eliminar usuarios en Linux?
La gestión de usuarios en cualquier sistema operativo es una de las tareas rutinarias básicas de un administrador de sistemas.
Para un sistema operativo basado en Linux, generalmenteally Implica crear cuentas de usuario, modificar cuentas existentes, como cambiar su directorio de inicio, shell predeterminado, bloquear/desbloquear una o más cuentas y eliminar cuentas de usuario.
Antes de investigarate los comandos y processPara realizar estas tareas, profundicemos brevemente en cómo se pueden clasificar las cuentas de usuario en Linux. Además, tenga en cuenta que, a menos que se especifique explícitamente, los comandos dados funcionarán en la mayoría de las distribuciones comunes de Linux.
Tipos de usuario
Usuario raíz
La root
El usuario es el administrador del sistema operativo con todos los permisos para realizar operaciones. usúally, solamente root
puede instalar/desinstalar o actualizarate Programas y bibliotecas básicos del sistema. Es la única cuenta de usuario con privilegios en todo el sistema.
Entonces, el usuario root es el usuario más poderoso del sistema.
Usuario especial
Estos son los usuarios sin inicios de sesión. No tienen todos los privilegios de la root
usuario. Dependiendo de la cuenta, asumen diferentes roles especializados.
Estos son createautomáticoally en el momento de la instalación de cualquier aplicación. bin
, sync
, lp
, mail
, operator
, squid
son algunos de los ejemplos de usuarios especiales.
Usuarios comunes
Los usuarios comunes tienen privilegios completos sólo en su directorio de trabajo, usually su directorio de inicio. No tienen privilegios para administrar el sistema ni instalar el software. No pueden realizar estas tareas sin tener privilegios especiales a través de sudo
.
Agregar usuario
Debian / Ubuntu
En un sistema basado en Debian o Ubuntu, hay un par de opciones para agregar usuarios desde la CLI. El primer comando es adduser
, que es un script de Perl y utiliza useradd
command in the backend whose usage we’ll see later.
Dado que agregar un usuario es una tarea privilegiada, necesitaría usar sudo
como prefijo y username
como argumento. Se pueden especificar otros detalles según se le solicite. A excepción del nombre de usuario y la contraseña, el resto de datos son opcionales. Podemos verificar que el usuario ha sido created usando id
mando.
$ sudo adduser johndoe
Adding user `johndoe' ...
Adding new group `johndoe' (1003) ...
Adding new user `johndoe' (1003) with group `johndoe' ...
Creating home directory `/home/johndoe' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for johndoe
Enter the new value, or press ENTER for the default
Full Name []: John Doe
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
$
$ id johndoe
uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe)
$
CentOS/RHEL/Fedora (incluido Debian/Ubuntu)
El siguiente comando, useradd
funcionará en distribuciones de sistema operativo basadas en RHEL, así como en equipos de trabajo.ally bien en hosts Ubuntu/Debian. La sintaxis más simple (sin ningún extra opciones) para crearate un nuevo usuario es:
$ sudo useradd <username>
Ejemplo:
$ sudo useradd janedoe
La useradd
El comando admite varias opciones que se pueden especificar al crear el usuario, siendo las más comunes la ID de usuario (UID), la ID de grupo (GID), el shell predeterminado y el directorio de inicio, etc. A continuación se proporciona un ejemplo de este tipo:
$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe
Puedes verificar la nueva creación.ated usuario usando id
mando:
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$
Modificando usuario
A menudo, es necesario modificar alguna propiedad de los usuarios existentes en función de los requisitos de la organización, las solicitudes de los usuarios o las migraciones del sistema. La mayoría de estas propiedades son fáciles de modificar, aunque debemos asegurarnos de cómo afectará el entorno del usuario y el acceso a los archivos que el usuario posee o a los que accede.
Concha predeterminada
El shell predeterminado es el shell CLI cre.ated cuando un usuario inicia una nueva sesión CLI ya sea locally o a través SSH. La mayoría de los sistemas modernos tienen un usuario predeterminado Bash
aunque puede variar según la distribución de Linux o el entorno del usuario. Para modificar el shell predeterminado de un usuario, use:
$ sudo usermod -s <shell> <username>
Ejemplo:
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/sh
$ sudo usermod -s /bin/bash janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$
Como puede ver en el resultado anterior, el shell se ha cambiado de /bin/sh
a /bin/bash
para el usuario janedoe
.
Directorio de inicio
Al igual que el shell predeterminado, el directorio de inicio de un usuario se puede modificar a una ubicación diferente usando:
$ sudo usermod -d <new_directory_path> <username>
En el siguiente ejemplo, el directorio de inicio del usuario del usuario janedoe
ha sido cambiado a /data/janedoe
:
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$ sudo usermod -d /data/janedoe janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$
Antes de realizar el cambio, asegúrese de que el nuevo directorio tenga la propiedad y los permisos adecuados. Otrowise, el usuario puede tener problemas al iniciar sesión o al trabajar en el nuevo directorio de inicio.
ID de usuario
Puede cambiar la identificación de usuario de un usuario existente usando:
$ sudo usermod -u <new_uid> <username>
Ejemplo:
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -u 1010 janedoe
$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$
Nuevamente, cambiar el UID cambia la forma en que el sistema de archivos de Linux asigna la propiedad y el permiso a un archivo o directorio. Asegúrese de que el directorio de inicio del usuario y su contenido y todos los demás archivos en cualquier lugar del sistema, origenally propiedad del usuario (con UID antiguo), se cambia a UID asignado. No hacerlo puede causar problemas en la sesión CLI y el acceso a archivos por parte del usuario.
Grupo predeterminado
El grupo predeterminado es usu.ally ID de grupo predeterminado del usuario, que se creaated durante el usuario creation a menos que se especifique otro GID. Linux le permite modificar el grupo predeterminado de un usuario usando usermod
mando también. Aquí está la sintaxis a usar:
$ sudo usermod -g <new_gid or group_name> <username>
Aquí hay un ejemplo:
$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$ sudo usermod -g 1001 janedoe
$ getent passwd janedoe
janedoe:x:1010:1001::/data/janedoe:/bin/bash
$
Nuevamente, asegúrese de que el nuevo ID de grupo esté configurado en el directorio de inicio del usuario, en el contenido y en todos los demás archivos o directorios aplicables para migrar correctamente.ate sus permisos de propiedad.
Adición/eliminación de grupos
Además del grupo predeterminado, un usuario en Linux puede formar parte de grupos secundarios. Siempre podemos agregar o eliminar grupos adicionales a los que pertenece un usuario usando usermod
mando.
$ sudo usermod -a -G <group_id or group_name> <username>
Ejemplo:
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -a -G docker janedoe
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$
De manera similar, para eliminar un usuario de uno de los grupos secundarios, use gpasswd
comando como se muestra a continuación:
$ sudo gpasswd -d <username> <groupname>
Ejemplo:
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$ sudo gpasswd -d janedoe docker
Removing user janedoe from group docker
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$
GECOS Comentario
GECOS campo en /etc/passwd
contiene información o comentarios del usuario. Podemos modificar esta información para un usuario existente como:
$ sudo usermod -c <comment> <username>
Ejemplo:
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -c "Jane Doe - System Admin" janedoe
$ getent passwd janedoe
janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash
$
Tenga en cuenta que si su comentario o detalles de usuario contienen espacios, incluya ese campo entre comillas como se hizo en el ejemplo anterior.
Nombre de inicio de sesión
El nombre de inicio de sesión del usuario también se puede cambiar usando usermod
comando usando -l
bandera:
$ sudo usermod -l <new_username> <old_username>
Ejemplo:
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -l jane_doe janedoe
$ id jane_doe
uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe)
$
Recuerda actualizarate referencias de usuario según el nuevo nombre cuandorever usado. Incluso en comandos como id
, se debe especificar el nuevo nombre de usuario.
Eliminando usuario
Un usuario puede ser eliminado de Linux usando userdel
mando.
$ sudo userdel <username>
Ejemplo:
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo userdel janedoe
$ id janedoe
id: ‘janedoe’: no such user
$
Para eliminar un usuario junto con su directorio de inicio y cola de correo, agregue -r
bandera también.
$ sudo userdel -r <username>
Ciertas ally para sistemas basados en Ubuntu, también puede utilizar deluser
Comando para eliminar un usuario:
$ sudo deluser <username>
Del mismo modo, para eliminar el directorio de inicio y la cola de correo, utilice:
$ sudo deluser --remove-home <username>
Para obtener información detallada y otras opciones admitidas, consulte la página principal de varios comandos mediante:
$ man adduser
$ man useradd
$ man usermod
$ man deluser
$ man userdel
Para Concluir
Este artículo mostró varios aspectos de la gestión de usuarios en un sistema Linux. Esto incluye una explicación de varios c.ateGories de usuarios y cómo agregarlos y eliminarlos. También cubre varias opciones que ayudan a modificar los parámetros de un usuario existente. Aunque no cubre todas las posibilidades admitidas por varios comandos, cubre muchas tareas de administración comunes que un administrador de sistemas encontrará en el trabajo diario.
También te puede interesar leer: Cómo eliminar archivos y directorios en Linux?