107.1 Lección 2
Certificación: |
LPIC-1 |
---|---|
Versión: |
5.0 |
Tema: |
107 Tareas administrativas |
Objetivo: |
107.1 Administrar cuentas de usuario y de grupo y los archivos de sistema relacionados con ellas |
Lección: |
1 de 2 |
Introducción
Las herramientas de línea de comando discutidas en la lección anterior y las aplicaciones gráficas proporcionadas por cada distribución que realizan las mismas tareas, actualizan una serie de archivos que almacenan información sobre los usuarios y los grupos.
Estos archivos se encuentran en el directorio /etc/
y son los siguientes:
/etc/passwd
-
Un archivo de siete campos delimitados por dos puntos que contienen información básica sobre los usuarios.
/etc/group
-
Un archivo de cuatro campos delimitados por dos puntos que contienen información básica sobre los grupos.
/etc/shadow
-
Un archivo de nueve campos delimitados por dos puntos que contienen contraseñas encriptadas de usuario.
/etc/gshadow
-
Un archivo de cuatro campos delimitados por dos puntos que contienen contraseñas de grupo encriptadas.
Aunque estos cuatro archivos están en texto plano, no deben ser editados directamente, sino siempre a través de las herramientas que proporciona la distribución que está utilizando.
/etc/passwd
Este es un archivo legible por el mundo que contiene una lista de usuarios, cada uno en una línea separada. Cada línea consiste en siete campos delimitados por dos puntos:
- Nombre de usuario
-
El nombre utilizado cuando el usuario se conecta al sistema.
- Contraseña
-
Se encuentra encriptada (o una
x
si se usa el archivo /etc/shadow). - ID de usuario (UID)
-
El número de identificación asignado al usuario en el sistema.
- ID de grupo (GID)
-
El número de grupo primario del usuario en el sistema.
- GECOS
-
Un campo de comentario opcional, que se utiliza para añadir información adicional sobre el usuario (como el nombre completo). El campo puede contener múltiples entradas separadas por comas.
- Home Directory
-
La ruta absoluta del directorio principal del usuario.
- Shell
-
La ruta absoluta del programa que abre cuando el usuario se conecta al sistema (normalmente un shell interactivo como
/bin/bash
).
/etc/group
Este es un archivo legible por el mundo que contiene una lista de grupos, cada uno en una línea separada. Cada línea consiste en cuatro campos delimitados por dos puntos:
- Nombre de grupo
-
El nombre de grupo.
- Contraseña de grupo
-
La contraseña cifrada del grupo (o una
x
si se usa el archivo /etc/gshadow). - ID de grupo (GID)
-
El número de identificación asignado al grupo en el sistema.
- Lista de miembros
-
Una lista delimitada por comas de los usuarios que pertenecen al grupo, excepto aquellos para los que esten en el grupo principal.
/etc/shadow
Se trata de un archivo legible sólo por root y por usuarios con privilegios de root que contiene contraseñas de usuario cifradas, cada una en una línea separada. Cada línea consiste en nueve campos delimitados por dos puntos:
- Nombre de usuario
-
El nombre usado cuando el usuario se conecta al sistema.
- Contraseña encriptada
-
La contraseña encriptada del usuario (si el valor comienza con
!
, la cuenta está bloqueada). - Fecha del último cambio de contraseña
-
La fecha del último cambio de contraseña, como número de días desde el 01/01/1970 (un valor de 0 significa que el usuario debe cambiar la contraseña la próxima vez que se conecte).
- Edad mínima de la contraseña
-
El número mínimo de días después de un cambio de contraseña, que debe pasar antes de que el usuario pueda cambiar la contraseña de nuevo.
- Edad máxima de la contraseña
-
El número máximo de días que debe pasar antes de que se requiera un cambio de contraseña.
- Período de alerta de la contraseña
-
El número de días, antes de que la contraseña expire, durante los cuales se advierte al usuario que debe cambiarla.
- Periodo de inactividad de la contraseña
-
El número de días después de que una contraseña expira, durante los cuales el usuario debe actualizarla. Después de este período, si el usuario no cambia la contraseña, la cuenta se desactivará.
- Fecha de vencimiento de la cuenta
-
La fecha expresada como el número de días desde el 01/01/1970, en que la cuenta de usuario será desactivada (un campo vacío significa que la cuenta de usuario nunca expirará).
- Un campo reservado
-
Un campo para un uso futuro.
/etc/gshadow
Se trata de un archivo legible sólo por root y por usuarios con privilegios de root que contiene contraseñas de grupo cifradas, cada una en una línea separada. Cada línea consiste en cuatro campos delimitados por dos puntos:
- Nombre del grupo
-
El nombre del grupo.
- Contraseña encriptada
-
La contraseña encriptada del grupo (se usa cuando un usuario, que no es miembro del grupo, quiere unirse al grupo usando el comando
newgrp
— si la contraseña comienza con!
, nadie puede acceder al grupo connewgrp
). - Administradores del Grupo
-
Una lista delimitada por comas de los administradores del grupo. Ellos pueden cambiar la contraseña del grupo y pueden agregar o quitar miembros del grupo con el comando
gpasswd
. - Miembros del grupo
-
Una lista delimitada por comas de los miembros del grupo.
Filtrar las bases de datos de contraseñas y grupos
Muy a menudo puede ser necesario revisar la información sobre los usuarios y grupos almacenados en estos cuatro archivos así como también buscar registros específicos. Para realizar esta tarea, puede utilizar el comando grep
o alternativamente concatenar cat
y grep
.
# grep emma /etc/passwd emma:x:1020:1020:User Emma:/home/emma:/bin/bash # cat /etc/group | grep db-admin db-admin:x:1050:grace,frank
Otra forma de acceder a estas bases de datos es usar el comando getent
. En general, este comando muestra las entradas de las bases de datos soportadas por las bibliotecas Name Service Switch (NSS) y requiere el nombre de la base de datos y una clave de búsqueda. Si no se proporciona ningún argumento de clave, se muestran todas las entradas de la base de datos especificada (a menos que la base de datos no soporte la enumeración). De lo contrario, si se proporcionan uno o más argumentos clave, la base de datos se filtra en consecuencia.
# getent passwd emma emma:x:1020:1020:User Emma:/home/emma:/bin/bash # getent group db-admin db-admin:x:1050:grace,frank
El comando getent
no requiere la autoridad de la raíz; sólo necesitas poder leer la base de datos de la que quieres recuperar los registros.
Note
|
Recuerda que |
Ejercicios guiados
-
Observe la siguiente salida y responda a las siguientes preguntas:
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
¿Cuál es el ID de usuario (UID) y el ID de grupo (GID) de
root
ycatherine
? -
¿Cuál es el nombre del grupo primario de
Kevin
? ¿Hay otros miembros en este grupo? -
¿Cuál shell está asignado para el
mail
? ¿Qué significa? -
¿Quiénes son los miembros del grupo de
app-developer
? ¿Cuáles de estos miembros son los administradores del grupo y cuáles son los miembros ordinarios? -
¿Cuál es la duración mínima de la contraseña para
catherine
? ¿Y cuál es la duración máxima de la contraseña? -
¿Cuál es el período de inactividad de la contraseña para
kevin
?
-
-
Por convención, ¿Qué identificaciones se asignan a las cuentas del sistema y cuáles a los usuarios ordinarios?
-
¿Cómo puede saber si una cuenta de usuario, que antes podía acceder al sistema, ahora se encuentra bloqueada? Supongamos que su sistema utiliza contraseñas en la sombra.
Ejercicios de exploración
-
Crea una cuenta de usuario llamada
christian
usando el comandouseradd -m
e identifica su ID de usuario (UID), ID de grupo (GID) y el shell. -
Identifica el nombre del grupo primario de
christian
. ¿Qué puedes deducir? -
Usando el comando
getent
, revisa la información de la contraseña de la cuenta del usuariochristian
. -
Añade el grupo
editor
a los grupos secundarios dechristian
. Supongamos que este grupo ya contiene aEmma
,Dave
yFrank
como miembros ordinarios. ¿Cómo puedes verificar que no hay administradores para este grupo? -
Ejecute el comando
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
y describa la salida que imprime en términos de permisos de archivo. ¿Cuál de estos cuatro archivos están con "shadow" por razones de seguridad? Supongamos que tu sistema utiliza contraseñas shadow.
Resumen
En esta lección aprendió:
-
La ubicación de los archivos que almacenan información sobre usuarios y grupos.
-
Administrar la información de usuarios y grupos almacenada en bases de datos de contraseñas y grupos.
-
Recuperar información de las bases de datos de contraseñas y grupos.
Los siguientes archivos y comandos fueron discutidos en esta lección:
/etc/passwd
-
El archivo que contiene información básica sobre los usuarios.
/etc/group
-
El archivo que contiene información básica sobre los grupos.
/etc/shadow
-
El archivo que contiene las contraseñas encriptadas de los usuarios.
/etc/gshadow
-
El archivo que contiene las contraseñas encriptadas de un grupo .
getent
-
Filtrar las bases de datos de contraseñas y grupos.
Respuesta a los ejercicios guiados
-
Observe la siguiente salida y responda a las siguientes preguntas:
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
¿Cuál es el ID de usuario (UID) y el ID de grupo (GID) de
root
ycatherine
?El UID y GID de
root
son 0 y 0, mientras que el UID y GID decatherine
son 1030 y 1025. -
¿Cuál es el nombre del grupo primario de
Kevin
? ¿Hay otros miembros en este grupo?El nombre del grupo es
db-admin
. Tambiénemma
ygrace
están en este grupo. -
¿Cuál shell está asignado para el
mail
? ¿Qué significa?mail
es una cuenta de usuario del sistema y su shell es/sbin/nologin
. De hecho, las cuentas de usuario del sistema comomail
,ftp
,news
ydaemon
se utilizan para realizar tareas administrativas y por lo tanto se debe evitar el inicio de sesión normal para estas cuentas. Por eso el shell está normalmente configurado como/sbin/nologin
o/bin/false
. -
¿Quiénes son los miembros del grupo de
app-developer
? ¿Cuáles de estos miembros son los administradores del grupo y cuáles son los miembros ordinarios?Los miembros son
catherine
,dave
ychristian
. Todos son miembros ordinarios. -
¿Cuál es la duración mínima de la contraseña para
catherine
? ¿Y cuál es la duración máxima de la contraseña?La duración mínima de la contraseña es de 20 días, mientras que la duración máxima es de 90 días.
-
¿Cuál es el período de inactividad de la contraseña para
kevin
?El período de inactividad de la contraseña es de 2 días. Durante este período
kevin
debe actualizar la contraseña, de lo contrario la cuenta será desactivada.
-
-
Por convención, ¿Qué identificaciones se asignan a las cuentas del sistema y cuáles a los usuarios ordinarios?
Las cuentas del sistema suelen tener UIDs inferiores a 100 o entre 500 y 1000, mientras que los usuarios ordinarios tienen UIDs a partir de 1000, aunque algunos sistemas heredados pueden empezar a numerar a 500. El usuario
root
tiene UID 0. Recuerde que los valoresUID_MIN
yUID_MAX
en/etc/login.defs
definen el rango de UIDs usados para la creación de usuarios ordinarios. Desde el punto de vista de LPI Linux Essentials y LPIC-1, las cuentas del sistema tienen UIDs menores que 1000 y los usuarios ordinarios tienen UIDs mayores que 1000. -
¿Cómo puede saber si una cuenta de usuario, que antes podía acceder al sistema, ahora se encuentra bloqueada? Supongamos que su sistema utiliza contraseñas en la sombra.
Cuando se utilizan contraseñas en la sombra, el segundo campo de
/etc/passwd
contiene el carácterx
para cada cuenta de usuario, porque las contraseñas cifradas de los usuarios se almacenan en/etc/shadow
. En concreto, la contraseña encriptada de una cuenta de usuario se almacena en el segundo campo de este archivo y, si comienza con un signo de exclamación, la cuenta está bloqueada.
Respuestas a los ejercicios de exploración
-
Crea una cuenta de usuario llamada
christian
usando el comandouseradd -m
e identifica su ID de usuario (UID), ID de grupo (GID) y el shell.# useradd -m christian # cat /etc/passwd | grep christian christian:x:1050:1060::/home/christian:/bin/bash
El UID y el GID de
christian
son 1050 y 1060 respectivamente (el tercer y cuarto campo en/etc/passwd
)./bin/bash
es el shell de esta cuenta de usuario (el séptimo campo en/etc/passwd
). -
Identifica el nombre del grupo primario de
christian
. ¿Qué puedes deducir?# cat /etc/group | grep 1060 christian:x:1060:
El nombre del grupo primario de
christian
eschristian
(el primer campo en/etc/group
). Por lo tanto,USERGROUPS_ENAB
en/etc/login.defs
está configurado para queuseradd
por defecto cree un grupo con el mismo nombre de la cuenta de usuario. -
Usando el comando
getent
, revisa la información de la contraseña de la cuenta del usuariochristian
.# getent shadow christian christian:!:18015:0:99999:7:::
La cuenta de usuario
christian
no tiene la contraseña establecida y ahora está bloqueada (el segundo campo en/etc/shadow
contiene un signo de exclamación). No hay una edad mínima y máxima para la contraseña de este usuario (el cuarto y quinto campo están fijados en 0 y 99999 días), mientras que el período de advertencia de la contraseña está fijado en 7 días (el sexto campo). Finalmente, no hay período de inactividad (el séptimo campo) y la cuenta nunca expira (el octavo campo). -
Añade el grupo
editor
a los grupos secundarios dechristian
. Supongamos que este grupo ya contiene aEmma
,Dave
yFrank
como miembros ordinarios. ¿Cómo puedes verificar que no hay administradores para este grupo?# cat /etc/group | grep editor editor:x:1100:emma,dave,frank # usermod -a -G editor christian # cat /etc/group | grep editor editor:x:1100:emma,dave,frank,christian # cat /etc/gshadow | grep editor editor:!::emma,dave,frank,christian
El tercer y cuarto campo en
/etc/ghadow
contienen los administradores y miembros ordinarios del grupo especifico. Por lo tanto, como el tercer campo está vacío paraeditor
, no hay administradores para este grupo (emma
,dave
,frank
ychristian
son todos miembros ordinarios). -
Ejecute el comando
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
y describa la salida que imprime en términos de permisos de archivo. ¿Cuál de estos cuatro archivos están con "shadow" por razones de seguridad? Supongamos que tu sistema utiliza contraseñas shadow.# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Los archivos
/etc/passwd
y/etc/group
son legibles en todo el mundo y están ocultos por razones de seguridad. Cuando se usan las contraseñas shadow, puedes observar unax
en el segundo campo de estos archivos, porque las contraseñas encriptadas de los usuarios y grupos se almacenan en/etc/shadow
y/etc/gshadow
respectivamente, que son legibles sólo por root. Incluso por los miembros pertenecientes al gruposhadow
.