Gestion de Usuarios

una fuente: https://www.systutorials.com/docs/linux/man/8-useradd/

La administración de usuarios y grupos solamente puede realizarlas el usuario root utilizando los comandos de gestión de usuarios. Las tareas y los comandos para realizarlas son:

  • Creación de usuarios / useradd
  • Modificación de usuarios / usermod
  • Eliminación de usuarios / userdel
  • Creación de grupos / groupadd
  • Modificación de grupos / groupmod
  • Eliminación de grupos / groupdel
  • Añadir usuarios a un grupo / adduser
  • Quitar usuarios de un grupo / deluser

Creación de usuarios

El comando useradd permite añadir un usuario indicando como parámetros la información particular para crear el usuario en la misma líne de comandos. La sintaxis es:

//Crear usuario
useradd [opciones] nombre-usuario

Entre las opciones más destacables tenemos:

  • -g: Grupo principal que queremos tenga el usuario (debe existir previamente)
  • -d: Carpeta home del usuario. Suele ser /home/nombre-usuario
  • -m: Crear carpeta home si es que no existe.
  • -s: Intérprete de comandos (shell) del usuario. Suele ser /bin/bash

Ejemplo, si deseamos crear un usuario llamado pedro cuyo grupo principal sea profesores, cuya carpeta home sea /home/pedro y su intérprete de comandos sea /bin/bash, ejecutaremos el siguiente comando:

// Crear un usuario
sudo useradd -g profesores -d /home/pedro -m -s /bin/bash pedro

De esta manera habremos creado al usuario pedro y su carpeta home. Si no utilizamos la opción -m, no se creará la carpeta home del usuario; en tal caso tendríamos que crearla manualmente. Tan solo nos quedará establecer su contraseña con el comando passwd:

// Establecer la contraseña del usuario
sudo passwd pedro

Entonces el sistema nos preguntará dos veces la contraseña que queremos asignar a pedro.

El comando useradd permite crear muchos usuarios automáticamente mediante archivos de comandos (scripts).

Se recomienda que el nombre de usuario sea en minúsculas y además de letras también puede contener números y algún signo como guiones normales y guiones bajos. Debemos recordar que unix distingue entre mayúsculas y minúsculas, es decir, Pepe es distinto de pepe.

Modificación de usuarios

Se utiliza el comando usermod y permite cambiar el nombre del usuario, su carpeta home, su intérprete de comandos, los grupos a los que pertenece y algunos otros parámetros.

// Cambiar el home de un usuario
sudo usermod -d /home/carpeta_pedro pedro 

Eliminación de usuarios

Se realiza con el comando userdel seguido del nombre del usuario. Con la opción -r eliminará también su carpeta home, ejemplo:

// Eliminación de un usuario
sudo userdel -r pedro

Eliminaría el usuario pedro y su carpeta home.

Creación de grupos

El comando groupadd permite añadir un grupo indicando como parámetro el nombre del grupo. Ejemplo, si deseamos crear un grupo llamado alumnos ejecutaremos:

// Añadir un grupo
sudo groupadd alumnos

 

 

Modificación de grupos

El comando groupmod permite modificar el nombre de un grupo o el gid del mismo. La sintaxis es: sudo groupmod [-g nuevo-gid] [-n nuevo-nombre] nombre-grupo, ejemplo:

// Cambiar el gid del grupo profesores
sudo groupmod -g 2000 profesores

Eliminación de grupos

Se realiza con el comando groupdel seguido del nombre del grupo, ejemplo:

// Eliminación de un grupo
sudo groupdel profesores

Eliminaría el grupo profesores. Si algún usuario tuviera dicho grupo como grupo primario, el comando groupdel no eliminará el grupo.

Añadir usuarios a un grupo

Se utiliza el comando adduser seguido del nombre del usuario y del nombre del grupo al que queremos añadirle, ejemplo:

// Añadir a juan al grupo profesores
sudo adduser juan profesores 

Quitar usuarios de un grupo

Se utiliza el comando deluser seguido del nombre del usuario y del nombre del grupo del que queremos quitarle, ejemplo:

// Quitar a juan del grupo profesores
sudo deluser juan profesores

Para más información de todos estos comandos se puede consultar la ayuda del manual ejecutando man seguido del nombre del comando, ejemplo man adduser.

NOMBRE
useradd – crea un nuevo usuario o actualiza la información predeterminada del nuevo usuario  
SINOPSIS
useradd [ opciones ] LOGIN
useradd -D
useradd -D [ opciones ]
 
DESCRIPCIÓN
Cuando se invoca sin la opción -D , el comando useradd crea una nueva cuenta de usuario utilizando los valores especificados en la línea de comandos más los valores predeterminados del sistema. Dependiendo de las opciones de la línea de comandos, el comando useradd actualizará los archivos del sistema y también puede crear el directorio de inicio del nuevo usuario y copiar los archivos iniciales.

De forma predeterminada, también se creará un grupo para el nuevo usuario (consulte -g , -N , -U y USERGROUPS_ENAB ).  

OPCIONES
Las opciones que se aplican al comando useradd son:

-b , –base-dir BASE_DIR

El directorio base predeterminado para el sistema si no se especifica -d HOME_DIR . BASE_DIR se concatena con el nombre de cuenta para definir el directorio de inicio. El BASE_DIR debe existir; de lo contrario, el directorio de inicio no se puede crear.
Si no se especifica esta opción, useradd utilizará el directorio base especificado por la variable HOME en / etc / default / useradd, o / home de forma predeterminada.

-c , –comment COMENTARIO

Cualquier cadena de texto. Por lo general, es una breve descripción del inicio de sesión y actualmente se utiliza como campo para el nombre completo del usuario.
-d , –home-dir HOME_DIR

El nuevo usuario se creará utilizando HOME_DIR como el valor para el directorio de inicio de sesión del usuario. El valor predeterminado es anexar el Registro del nombre a BASE_DIR y usar eso como el nombre del directorio de inicio de sesión.
-D , –defaults

Vea a continuación, la subsección ‘Cambio de los valores predeterminados’.
-e , –expirado EXPIRE_DATE

La fecha en que se deshabilitará la cuenta de usuario. La fecha se especifica en el formato YYYY-MM-DD .
Si no se especifica, useradd utilizará la fecha de caducidad predeterminada especificada por la variable EXPIRE en / etc / default / useradd, o una cadena vacía (sin caducidad) de forma predeterminada.

-f , –inactive INACTIVO

El número de días después de que caduque una contraseña hasta que la cuenta se deshabilite permanentemente. Un valor de 0 desactiva la cuenta tan pronto como la contraseña ha caducado, y un valor de -1 desactiva la función.
Si no se especifica, useradd utilizará el período de inactividad predeterminado especificado por la variable INACTIVE en / etc / default / useradd, o -1 de forma predeterminada.

-g , –gid GRUPO

El nombre del grupo o el número del grupo de inicio de sesión inicial del usuario. El nombre del grupo debe existir. Un número de grupo debe referirse a un grupo ya existente.
Si no se especifica, el comportamiento de useradd dependerá de la USERGROUPS_ENAB variable en /etc/login.defs. Si esta variable se establece en sí (o -U / – user-group se especifica en la línea de comando), se creará un grupo para el usuario, con el mismo nombre que su nombre de inicio de sesión. Si la variable se configura en no (o -N / – no se especifica un grupo de usuarios en la línea de comando), useradd configurará el grupo primario del nuevo usuario al valor especificado por la variable GROUP en / etc / default / useradd, o 100 por defecto.

-G , –groups GROUP1 [ , GROUP2, … [ , GROUPN ]]]

Una lista de grupos suplementarios de los cuales el usuario también es miembro. Cada grupo está separado del siguiente por una coma, sin espacios en blanco intermedios. Los grupos están sujetos a las mismas restricciones que el grupo dado con la opción -g . El valor predeterminado es que el usuario pertenezca solo al grupo inicial.
-h , –ayudar

Mostrar mensaje de ayuda y salir.
-k , –skel SKEL_DIR

El directorio de esqueleto, que contiene los archivos y directorios que se copiarán en el directorio de inicio del usuario, cuando el directorio de inicio es creado por useradd .
Esta opción solo es válida si se especifica la opción -m (o –create-home ).

Si esta opción no está establecida, el directorio de esqueleto está definido por la variable SKEL en / etc / default / useradd o, por defecto, / etc / skel.

Si es posible, se copian las ACL y los atributos extendidos.

-K , –clave KEY = VALOR

Anula los valores predeterminados de /etc/login.defs ( UID_MIN , UID_MAX , UMASK , PASS_MAX_DAYS y otros).
Ejemplo: -K PASS_MAX_DAYS = -1 se puede usar al crear una cuenta del sistema para desactivar la caducidad de la contraseña, aunque la cuenta del sistema no tenga ninguna contraseña. Se pueden especificar múltiples opciones -K , por ejemplo: -K UID_MIN = 100 -K UID_MAX = 499

-l , –no-log-init

No agregue el usuario a las bases de datos de lastlog y faillog.
De forma predeterminada, las entradas del usuario en las bases de datos de lastlog y faillog se restablecen para evitar la reutilización de la entrada de un usuario previamente eliminado.

-m , –create-home

Cree el directorio de inicio del usuario si no existe. Los archivos y directorios contenidos en el directorio de esqueleto (que se puede definir con la opción -k ) se copiarán al directorio de inicio.
De forma predeterminada, si esta opción no está especificada y CREATE_HOME no está habilitado, no se crean directorios de inicio.

El directorio donde se crea el directorio de inicio del usuario debe existir y tener el contexto y los permisos adecuados de SELinux. De lo contrario, el directorio de inicio del usuario no se puede crear o acceder.

-M , –no-create-home

No cree el directorio de inicio del usuario, incluso si la configuración de todo el sistema desde /etc/login.defs ( CREATE_HOME ) está establecida en sí .
-N , –no-grupo-usuario

No cree un grupo con el mismo nombre que el usuario, pero agregue el usuario al grupo especificado por la opción -g o por la variable GROUP en / etc / default / useradd.
El comportamiento por defecto (si los -g , -N , y -U no se especifican opciones) se define por la USERGROUPS_ENAB variable en /etc/login.defs.

-o , –no-único

Permite la creación de una cuenta de usuario con un UID duplicado (no único).
Esta opción solo es válida en combinación con la opción -u .

-p , –password CONTRASEÑA

La contraseña encriptada, tal como la devuelve crypt (3). El valor predeterminado es deshabilitar la contraseña.
Nota: esta opción no se recomienda porque los usuarios que enumeran los procesos podrán ver la contraseña (o la contraseña cifrada).

Debe asegurarse de que la contraseña respeta la política de contraseñas del sistema.

-r , –sistema

Crear una cuenta del sistema.
Los usuarios del sistema se crearán sin información de antigüedad en / etc / shadow, y sus identificadores numéricos se elegirán en el rango SYS_UID_MIN – SYS_UID_MAX , definido en /etc/login.defs, en lugar de UID_MIN – UID_MAX (y sus equivalentes GID para la creación de grupos).

Tenga en cuenta que useradd no creará un directorio de inicio para dicho usuario, independientemente de la configuración predeterminada en /etc/login.defs ( CREATE_HOME ). Debe especificar las opciones -m si desea que se cree un directorio de inicio para una cuenta del sistema.

-R , –root CHROOT_DIR

Aplique los cambios en el directorio CHROOT_DIR y use los archivos de configuración del directorio CHROOT_DIR .
-s , – shell SHELL

El nombre del shell de inicio de sesión del usuario. El valor predeterminado es dejar este campo en blanco, lo que hace que el sistema seleccione el shell de inicio de sesión predeterminado especificado por la variable SHELL en / etc / default / useradd, o una cadena vacía de forma predeterminada.
-u , –id UID

El valor numérico de la ID del usuario. Este valor debe ser único, a menos que se use la opción -o . El valor debe ser no negativo. El valor predeterminado es utilizar el valor de ID más pequeño mayor o igual que UID_MIN y mayor que cualquier otro usuario.
Vea también la opción -r y la descripción de UID_MAX .

-U , –usuario-grupo

Cree un grupo con el mismo nombre que el usuario y agregue el usuario a este grupo.
El comportamiento por defecto (si los -g , -N , y -U no se especifican opciones) se define por la USERGROUPS_ENAB variable en /etc/login.defs.

-Z , –selinux-usuario SEUSER

El usuario SELinux para el inicio de sesión del usuario. El valor predeterminado es dejar este campo en blanco, lo que hace que el sistema seleccione el usuario predeterminado de SELinux.
 
Cambiando los valores por defecto
Cuando se invoca solo con la opción -D , useradd mostrará los valores predeterminados actuales. Cuando se invoca con -D más otras opciones, useradd actualizará los valores predeterminados para las opciones especificadas. Las opciones válidas para cambiar por defecto son:

-b , –base-dir BASE_DIR

El prefijo de ruta para el directorio de inicio de un nuevo usuario. El nombre del usuario se colocará al final de BASE_DIR para formar el nombre del directorio de inicio del nuevo usuario, si la opción -d no se usa al crear una nueva cuenta.
Esta opción establece la variable HOME en / etc / default / useradd.

-e , –expirado EXPIRE_DATE

La fecha en que la cuenta de usuario está deshabilitada.
Esta opción establece la variable EXPIRE en / etc / default / useradd.

-f , –inactive INACTIVO

El número de días después de que una contraseña haya expirado antes de que la cuenta se deshabilite
Esta opción establece la variable INACTIVE en / etc / default / useradd.

-g , –gid GRUPO

El nombre del grupo o la ID del grupo inicial de un nuevo usuario (cuando se usa el grupo -N / – no-usuario-grupo o cuando la variable USERGROUPS_ENAB se establece en no en /etc/login.defs). El grupo nombrado debe existir, y un ID de grupo numérico debe tener una entrada existente.
Esta opción establece la variable GROUP en / etc / default / useradd.

-s , – shell SHELL

El nombre del shell de inicio de sesión de un nuevo usuario.
Esta opción establece la variable SHELL en / etc / default / useradd.

 
NOTAS
El administrador del sistema es responsable de colocar los archivos de usuario predeterminados en el directorio / etc / skel / (o en cualquier otro directorio de esqueleto especificado en / etc / default / useradd o en la línea de comandos).  

CUEVAS
No puede agregar un usuario a un grupo NIS o LDAP. Esto debe realizarse en el servidor correspondiente.

De manera similar, si el nombre de usuario ya existe en una base de datos de usuarios externa como NIS o LDAP, useradd rechazará la solicitud de creación de cuenta de usuario.

Los nombres de usuario solo pueden tener hasta 32 caracteres.  

CONFIGURACIÓN
Las siguientes variables de configuración en /etc/login.defs cambian el comportamiento de esta herramienta:

CREATE_HOME (booleano)

Indique si un directorio de inicio debe crearse de forma predeterminada para los nuevos usuarios.
Esta configuración no se aplica a los usuarios del sistema y puede anularse en la línea de comandos.

GID_MAX (número), GID_MIN (número)

Rango de identificadores de grupo utilizados para la creación de grupos regulares por useradd , groupadd o newusers .
El valor predeterminado para GID_MIN (resp. GID_MAX ) es 1000 (resp. 60000).

MAIL_DIR (cadena)

El directorio de spool de correo. Esto es necesario para manipular el buzón cuando se modifica o elimina su cuenta de usuario correspondiente. Si no se especifica, se utiliza un valor predeterminado de tiempo de compilación.
MAIL_FILE (cadena)

Define la ubicación de los archivos de cola de correo de los usuarios en relación con su directorio de inicio.
Las variables MAIL_DIR y MAIL_FILE son utilizadas por useradd , usermod y userdel para crear, mover o eliminar la cola de correo del usuario.

Si MAIL_CHECK_ENAB se establece en sí , también se utilizan para definir la variable de entorno MAIL .

MAX_MEMBERS_PER_GROUP (número)

Miembros máximos por entrada de grupo. Cuando se alcanza el máximo, se inicia una nueva entrada de grupo (línea) en / etc / group (con el mismo nombre, la misma contraseña y el mismo GID).
El valor predeterminado es 0, lo que significa que no hay límites en el número de miembros en un grupo.

Esta función (grupo dividido) permite limitar la longitud de las líneas en el archivo de grupo. Esto es útil para asegurarse de que las líneas para los grupos NIS no tengan más de 1024 caracteres.

Si necesita hacer cumplir dicho límite, puede usar 25.

Nota: es posible que las herramientas no admitan grupos divididos (incluso en el conjunto de herramientas Sombra). No debes usar esta variable a menos que realmente la necesites.

PASS_MAX_DAYS (número)

El número máximo de días que se puede utilizar una contraseña. Si la contraseña es anterior a esta, se forzará un cambio de contraseña. Si no se especifica, se asumirá -1 (lo que deshabilita la restricción).
PASS_MIN_DAYS (número)

El número mínimo de días permitidos entre cambios de contraseña. Cualquier cambio de contraseña intentado antes de esto será rechazado. Si no se especifica, se asumirá -1 (lo que deshabilita la restricción).
PASS_WARN_AGE (número)

El número de días de advertencia dados antes de que caduque una contraseña. Un cero significa que la advertencia se da solo el día de la expiración, un valor negativo significa que no se da ninguna advertencia. Si no se especifica, no se proporcionará ninguna advertencia.
SYS_GID_MAX (número), SYS_GID_MIN (número)

Rango de identificadores de grupo utilizados para la creación de grupos de sistemas por useradd , groupadd o newusers .
El valor predeterminado para SYS_GID_MIN (resp. SYS_GID_MAX ) es 101 (resp. GID_MIN -1).

SYS_UID_MAX (número), SYS_UID_MIN (número)

Rango de ID de usuario utilizado para la creación de usuarios del sistema por useradd o newusers .
El valor predeterminado para SYS_UID_MIN (resp. SYS_UID_MAX ) es 101 (resp. UID_MIN -1).

UID_MAX (número), UID_MIN (número)

Rango de ID de usuario utilizado para la creación de usuarios regulares por useradd o newusers .
El valor predeterminado para UID_MIN (resp. UID_MAX ) es 1000 (resp. 60000).

UMASK (número)

La máscara de creación de modo de archivo se inicializa a este valor. Si no se especifica, la máscara se inicializará a 022.
useradd y newusers usan esta máscara para establecer el modo del directorio de inicio que crean

También se usa para iniciar sesión para definir la umask inicial de los usuarios. Tenga en cuenta que esta máscara puede ser anulada por la línea GECOS del usuario (si se establece QUOTAS_ENAB ) o por la especificación de un límite con el identificador K en los límites (5).

USERGROUPS_ENAB (boolean)

Habilite la configuración de los bits del grupo umask para que sean iguales a los bits de propietario (ejemplos: 022 -> 002, 077 -> 007) para usuarios no root, si el uid es el mismo que gid, y el nombre de usuario es el mismo que el primario Nombre del grupo.
Si se establece en sí , userdel eliminará el grupo del usuario si no contiene más miembros, y useradd creará por defecto un grupo con el nombre del usuario.

 
ARCHIVOS
/ etc / passwd

Información de cuenta de usuario.
/ etc / shadow

Información segura de la cuenta de usuario.
/ etc / grupo

Información de la cuenta del grupo.
/ etc / gshadow

Asegure la información de la cuenta del grupo.
/ etc / default / useradd

Valores predeterminados para la creación de cuentas.
/ etc / skel /

Directorio que contiene los archivos por defecto.
/etc/login.defs

Configuración de la suite de contraseñas ocultas.
 
VALORES DE SALIDA
El comando useradd sale con los siguientes valores:

0

éxito
1

no se puede actualizar el archivo de contraseña
2

sintaxis de comando inválido
3

argumento inválido a opción
4

UID ya en uso (y no -o )
6

el grupo especificado no existe
9

Nombre de usuario ya está en uso
10

no se puede actualizar el archivo de grupo
12

no se puede crear el directorio de inicio
14

no se puede actualizar la asignación de usuarios de SELinux