GNU/Linux >> Tutoriales Linux >  >> Linux

Guía para principiantes de administración de usuarios y grupos en Linux

Cada usuario en Linux tiene una identificación de usuario única (UID ), que es un número entero ordinario y un nombre de usuario asociado. Los usuarios inician sesión con sus nombres de usuario, pero el sistema utiliza los UID asociados. Cada cuenta de usuario también tiene un directorio de inicio y un shell de inicio de sesión. Cuando los usuarios inician sesión, se colocan en su directorio de inicio y se ejecuta su shell de inicio de sesión. Toda esta información de la cuenta de usuario se almacena en el /etc/passwd archivo.

Cada usuario también pertenece a uno o más grupos. Se pueden asignar diferentes usuarios a un mismo grupo. Se puede otorgar acceso a un grupo y a todos los miembros del grupo se les otorgan los mismos privilegios de acceso. Cada cuenta de grupo en Linux tiene una ID de grupo única (GID ) y un nombre de grupo asociado. La información del grupo se almacena en /etc/group archivo.

RedHat Linux utiliza un esquema de grupo privado de usuarios (UPG) . Cuando se agrega una nueva cuenta de usuario, también se crea un nuevo grupo privado de usuarios. El grupo privado de usuarios tiene el mismo nombre que el usuario y el nuevo usuario es el único miembro de este grupo.

Tanto los usuarios como los grupos usan contraseñas ocultas. Las contraseñas se cifran y almacenan en diferentes archivos, /etc/shadow para usuarios y /etc/gshadow para grupos La seguridad mejora al almacenar contraseñas cifradas en archivos "sombra", ya que estos archivos solo los puede leer el usuario root. El uso de contraseñas ocultas también proporciona parámetros de caducidad de contraseñas y permite aplicar políticas de seguridad mediante el archivo /etc/login.defs. Solo el usuario raíz puede agregar, modificar o eliminar cuentas de usuarios y grupos.

Archivos de configuración de usuarios y grupos

/etc/contraseña

Cuando se agrega un nuevo usuario, la información se almacena como una sola línea separada por dos puntos en /etc/passwd. Aquí hay un ejemplo de una entrada en este archivo:

# tail -1 /etc/passwd
test:x:1001:1001:test user:/home/test:/bin/bash

A continuación se describe esta entrada:

Campo Descripción
prueba Nombre de usuario
x Indica que se utilizan contraseñas ocultas
1001 UID, estos comienzan con 1000 y se incrementan en 1 por cada usuario recién agregado. Los UID por debajo de 1000 están reservados para uso del sistema.
1001 GID del grupo principal del usuario. Estos comienzan con 1000 y aumentan en 1 para cada nuevo grupo. Los usuarios pueden pertenecer a más de un grupo.
usuario de prueba Información de GECOS (General Electric Comprehensive Operating System), utilizada únicamente con fines informativos, como el nombre completo
/inicio/prueba Directorio de inicio para este usuario
/bin/bash Shell predeterminado para este usuario

/etc/sombra

Con las contraseñas ocultas, se agrega automáticamente una nueva entrada a /etc/shadow cuando se crea un nuevo usuario. Este archivo solo puede ser visto por root. Aquí hay un ejemplo de una entrada en este archivo:

# tail -1 /etc/shadow
test:$6$XBCDBQ...:17610:0:99999:7:::

A continuación se describe esta entrada:

Campo Descripción
prueba Nombre de usuario
$6$XBCDBQ… Valor de contraseña con hash (se muestra el valor parcial). La contraseña de texto sin formato en sí no se almacena en el disco. Un algoritmo crea una cadena única a partir de una contraseña.
17610 Número de días desde que se cambió la contraseña (contados en días desde el 1 de enero de 1970).
0 Número de días que deben pasar antes de que el usuario deba cambiar la contraseña.
99999 Número máximo de días desde que se cambió la contraseña que se puede usar la contraseña. Después de esta cantidad de días, la contraseña debe ser cambiada por el usuario.
7 Número de días antes de la fecha de vencimiento en que se advierte al usuario sobre la política de cambio de contraseña pendiente. Si la contraseña no se cambia después de esta cantidad de días, la cuenta de usuario se bloquea.

El siguiente campo está vacío pero se utiliza para almacenar la última fecha en que se bloqueó la cuenta (contados en días desde el 1 de enero de 1970). El último campo también está vacío pero no se usa.

/etc/grupo

Debido a que Oracle Linux utiliza un esquema UPG, se crea automáticamente una nueva entrada en /etc/group cuando se agrega un nuevo usuario. El nombre del grupo es el mismo que el nombre de usuario. Aquí hay un ejemplo de una entrada en este archivo:

# tail -1 /etc/group
test:x:1000:test

A continuación se describe esta entrada:

Campo Descripción
prueba Nombre del grupo
x Indica que se utilizan contraseñas ocultas
1000 GID
prueba Lista de usuarios que son miembros del grupo

Cada grupo puede tener varios usuarios. Los usuarios también pueden pertenecer a más de un grupo. El GID almacenado en la entrada del usuario en /etc/passwd es el grupo principal del usuario.

/etc/gshadow

Las contraseñas de grupo cifradas se almacenan en este archivo. Sin embargo, las contraseñas de grupo rara vez se utilizan. Aquí hay un ejemplo de una entrada en este archivo:

# tail -1 /etc/gshadow 
test:!!::test

A continuación se describe esta entrada:

Campo Descripción
prueba Nombre del grupo
x Contraseña cifrada. Los !! Indica que la cuenta está bloqueada.
oráculo Lista de usuarios que son miembros del grupo

Los dos últimos campos se utilizan para designar administradores y miembros.

Agregar una cuenta de usuario

añadir usuario

Utilice el comando useradd para agregar una cuenta de usuario. La sintaxis es:

# useradd [options] user_name

Al crear un nuevo usuario sin ninguna opción, se aplican las configuraciones predeterminadas. Ejemplo:

# useradd john
# tail -1 /etc/passwd
john:x:501:501::/home/john:/bin/bash

También por defecto, useradd crea una cuenta de usuario bloqueada. Para desbloquear la cuenta y asignar una contraseña, ejecute el comando passwd user_name como root. Ejemplo:

# passwd john

El comando passwd nombre_usuario le solicita una nueva contraseña. Dependiendo de la complejidad de la contraseña, es posible que se le notifique que la contraseña es incorrecta (demasiado corta o demasiado simple). Vuelva a ingresar la misma contraseña para continuar y desbloquear la cuenta de usuario. El mismo comando passwd se usa para cambiar una contraseña. El usuario raíz siempre puede cambiar la contraseña de un usuario. Se solicita a los usuarios que introduzcan primero la contraseña actual.

Configuración predeterminada

La configuración predeterminada para un nuevo usuario se puede ver y modificar mediante la opción -D. Ejemplo:

# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

El INACTIVO La directiva establece el número de días después de que caduca una contraseña hasta que se bloquea la cuenta. Un valor de 0 bloquea la cuenta tan pronto como caduca la contraseña. Un valor de -1 deshabilita la característica. Contenidos del SKEL (/etc/skel de forma predeterminada) se copian en el directorio de inicio de un nuevo usuario cuando se crea la cuenta de usuario. La configuración predeterminada se almacena en /etc/default/useradd . Las siguientes opciones, usadas con –D, cambian los valores predeterminados del comando useradd:

  • -b inicio_predeterminado :El prefijo de ruta inicial para el directorio de inicio de un nuevo usuario
  • -e default_expire_date :La fecha en la que se deshabilita la cuenta de usuario
  • -f predeterminado_inactivo :el número de días después de que caduque una contraseña antes de que se bloquee la cuenta
  • -g grupo_predeterminado :el nombre o ID del grupo para el grupo inicial de un nuevo usuario
  • -s default_shell :El shell de inicio de sesión del nuevo usuario

Por ejemplo, para cambiar el shell de inicio de sesión de un nuevo usuario al shell Bourne, ingrese lo siguiente:

# useradd –D –s /bin/sh user_name

Opciones de agregar usuario

Hay varias opciones disponibles para el comando useradd para anular la configuración predeterminada. Las siguientes son algunas de las opciones más utilizadas:

  • -c comentario :la información GECOS del nuevo usuario, como el nombre completo
  • -d home_dir :El prefijo de ruta inicial para el directorio de inicio de un nuevo usuario
  • -e fecha_de_caduca :La fecha (formato AAAA-MM-DD) cuando la cuenta de usuario está deshabilitada
  • -g grupo_inicial :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 hacer referencia a un grupo ya existente.
  • grupo -G :una lista de grupos secundarios de los que el usuario también es miembro. Cada grupo está separado del siguiente por una coma, sin espacios en blanco intermedios.
  • -p contraseña :establezca la contraseña del nuevo usuario.
  • concha -s :El nombre del shell de inicio de sesión del usuario

Por ejemplo, para crear un nuevo nombre de usuario de "john", e incluir el nombre del usuario y cambiar el shell de inicio de sesión al shell C, ingrese lo siguiente:

# useradd –c "John Smith" –s /bin/csh john

inicio de sesión Shell

Cuando agrega una nueva cuenta de usuario, al usuario se le otorga acceso de shell de manera predeterminada. Puede crear una cuenta de usuario con shell nologin para ejecutar un servicio como SMTP, FTP o ejecutar un servidor web, por ejemplo. Un usuario sin un shell de inicio de sesión no puede iniciar sesión en un sistema y, por lo tanto, no puede ejecutar ningún comando de forma interactiva en el sistema. Sin embargo, los procesos pueden ejecutarse como ese usuario.

El inicio de sesión como usuario con un shell nologin se rechaza cortésmente y se muestra un mensaje que indica que la cuenta no está disponible. Si el archivo /etc/nologin.txt existe, nologin muestra el contenido del archivo en lugar del mensaje predeterminado. Para crear un usuario nologin, primero asegúrese de que nologin exista en /etc/shells archivo:

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash

Para agregar un nuevo usuario llamado prueba sin acceso de shell:

# useradd -s /sbin/nologin test

Intentando iniciar sesión como muestra de prueba de usuario:

# su – test
This account is currently not available.

Modificación o eliminación de cuentas de usuario

modo de usuario

Utilice el comando usermod para modificar una cuenta de usuario existente. La sintaxis es:

# usermod [options] user_name

Uno de los usos más comunes del comando usermod es agregar un usuario a otro grupo (secundario). Usa el –a y –G seguidas de una lista separada por comas de los grupos secundarios a los que agregar el usuario. El siguiente ejemplo enumera el contenido de /etc/group antes y después de modificar un usuario y agregarlo a un grupo secundario:

# grep 1017 /etc/group 
students:x:1017:
# usermod –aG 1017 mary 
# grep 1017 /etc/group students:x:1017:mary

del usuario

Utilice el comando userdel para eliminar una cuenta de usuario. Ejemplo:

# userdel john

Administración de cuentas de grupo

añadir grupo

Utilice el comando groupadd para agregar una cuenta de grupo. La sintaxis es:

# groupadd [options] group_name

modificación de grupo

Utilice el comando groupmod para modificar una cuenta de grupo. La sintaxis es:

# groupmod [options] group_name

grupodel

Utilice el comando groupdel para eliminar una cuenta de grupo. La sintaxis es:

# groupdel group_name

Puede eliminar grupos incluso si hay miembros en el grupo. No puede eliminar el grupo principal de ningún usuario existente. Debe eliminar al usuario antes de eliminar el grupo.

contraseña g

Utilice el comando gpasswd para administrar /etc/group y /etc/gshadow. Cada grupo puede tener administradores, miembros y una contraseña. La sintaxis es:

# gpasswd [options] group_name

grupos

El comando de grupos muestra los grupos a los que pertenece un usuario. El siguiente ejemplo ilustra que el usuario oráculo pertenece a dos grupos, oráculo (grupo principal) y estudiantes (grupo secundario):

$ grep oracle /etc/passwd
oracle:x:1000:1000:Oracle Student:/home/oracle/bin/bash
$ grep oracle /etc/group
oracle:x:1000: students:x:1056:student1,student2,oracle

El comando de grupos (registrado como Oracle) verifica estas membresías de grupo.

$ whoami
oracle
$ groups 
oracle students

nuevo grupo

El comando newgrp ejecuta un nuevo shell y cambia la identificación de grupo real de un usuario. El siguiente ejemplo ilustra el ID de grupo antes y después de ejecutar el comando. También ilustra que se ejecuta un nuevo shell.

$ id
uid=1000(oracle) gid=1000(oracle)
groups=1000(oracle),1066(students)... 

Tenga en cuenta que el gid es igual a 1000 (oráculo).

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash 
20411 pts/0 00:00:00 ps
$ newgrp students
$ id
uid=1000(oracle) gid=1066(students)
groups=1000(oracle),1066(students)...

Tenga en cuenta que el gid ahora es igual a 1066 (estudiantes). También tenga en cuenta que se ejecutó un nuevo shell:

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash
20464 pts/0 00:00:00 bash
20486 pts/0 00:00:00 ps

El comando newgrp no reconoce los números de ID de grupo y solo puede cambiar el nombre real de su grupo a un grupo del que sea miembro. Ejecutar el comando sin un argumento establece la identificación del grupo real en el grupo principal del usuario.

Configuración de contraseña

La caducidad de la contraseña requiere que los usuarios cambien su contraseña periódicamente. Utilice el comando chage para configurar la caducidad de la contraseña. La sintaxis es:

# chage [options] user_name

Ingrese el comando chage, seguido de un nombre de usuario, para mostrar los valores de vencimiento de la contraseña existente y realizar modificaciones. Por ejemplo, para mostrar y cambiar valores para el usuario john, escriba (como usuario root):

# chage john
Changing the aging information for john
Enter the new value, or press ENTER for the default

	Minimum Password Age [0]: 
	Maximum Password Age [99999]: 
	Last Password Change (YYYY-MM-DD) [2018-03-24]: 
	Password Expiration Warning [7]: 
	Password Inactive [-1]: 
	Account Expiration Date (YYYY-MM-DD) [-1]: 

La información sobre la caducidad de la contraseña se almacena en el archivo /etc/shadow. Para ver la entrada del usuario john antes de realizar cambios:

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:0:99999:7:::

Cambiar el valor de antigüedad mínima de la contraseña a 14 y el valor de antigüedad máxima de la contraseña a 30 significa que en 14 días el usuario tiene 30 días para cambiar su contraseña. La nueva entrada aparece como:

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:14:30:7:::

Con base en esta información, se advierte al usuario que cambie su contraseña siete días antes de la fecha de vencimiento de la contraseña. La directiva INACTIVE se utiliza para establecer el número de días de inactividad después de que una contraseña haya caducado antes de que se bloquee la cuenta de usuario. Establecer INACTIVO en -1 deshabilita esta característica.

Opciones de cambio

Hay varias opciones disponibles para el comando cambiar. Para enumerar la información de antigüedad:

# chage -l john
Last password change					: Mar 24, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

Para obligar a un usuario a establecer una nueva contraseña inmediatamente (forzar la caducidad inmediata), establezca el último valor de cambio de contraseña en 0. Ejemplo:

# chage –d 0 john

Después de iniciar sesión, se le pide al usuario que cambie su contraseña.

configuración de autenticación

El algoritmo hash de contraseña de usuario de Linux también es configurable. Utilice el comando authconfig para determinar el algoritmo actual que se está utilizando o para configurarlo en algo diferente. Para determinar el algoritmo actual:

# authconfig --test | grep hashing
    password hashing algorithm is sha512

Para cambiar el algoritmo, utilice –passalgo opción con uno de los siguientes como parámetro:descifrar , grancripta , md5 , sha256 , o sha512 , seguido de –update opción. Por ejemplo, para cambiar el algoritmo a MD5:

# authconfig --passalgo=md5 --update
CentOS/RHEL:Gestión de la caducidad de la contraseña para usuarios que utilizan chage (con ejemplos prácticos)
Comprensión del archivo /etc/login.defs


Linux
  1. 10 tutoriales de comandos de Linux para principiantes y expertos

  2. Cómo agregar un usuario a un grupo en Linux

  3. Cómo crear y eliminar un grupo de usuarios en Linux

  4. Administrar grupos de usuarios de Linux

  5. 5 pasos para configurar la cuota de disco de usuario y grupo en UNIX/Linux

Una guía para principiantes sobre la gestión de usuarios en Ubuntu Desktop y Server

Guía completa de administración de usuarios en Linux

Guía y configuración del gestor de arranque LILO Linux

Cómo agregar un usuario a un grupo en Linux

Guía para principiantes de gestión de usuarios de MySQL

Cómo agregar un usuario a un grupo de Linux