miércoles, 16 de julio de 2014

Archivos de gestión de usuarios y grupos

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

A medida que vayamos adentrándonos en nuestro sistema Linux la gestión de usuarios y grupos se convertirá en un asunto capital. Antes de entrar a analizar los comandos que nos permiten crear y gestionar usuarios y grupos vamos a describir los archivos que intervienen en dichas operaciones.

/etc/skel/
Directorio donde se almacenan los archivos que se cargarán al crear un nuevo usuario.

/etc/default/useradd
Este es el fichero donde se guardan los ajustes de usuario.

/etc/logins.defs
Archivo que controla la vigencia de las contraseñas. Vamos a destacar tres variables de entorno relevantes para este aspecto:
PASS_MAX_DAYS: establece la vigencia de las contraseñas en nº de días.
PASS_MIN_DAYS: establece la vigencia mínima en nº de días de una contraseña. Si su valor es cero podremos cambiarla cuando lo queramos.
PASS:WARN_AGE: establece el nº de días a partir del cual se avisará al usuario de la caducidad de su contraseña.

Recordemos que sobre las variables de entorno hablamos aquí.

/etc/passwd
Archivo editable (como root) con la lista de usuarios del sistema. Debería tener permiso de lectura para todos pero solo de escritura para root. Veamos un ejemplo de línea de este fichero:

daemon:x1:1:daemon:/usr/sbin:/bin/sh

Desglose:

daemon: es el nombre de la cuenta.
x: es la clave encriptada.
1: es el UID (User IDentification, identificador de usuario). El UID de valor 0 pertenece al administrador. Por debajo de 100 es de sistema; por encima, de los usuarios.
1: es el GID (Group IDdentification, identificador de grupo).
daemon: es el GECOS o campo destinado a un comentario descriptivo del usuario o grupo.
/usr/bin: directorio del usuario.
/bin/sh: terminal por defecto.

Si quisiéramos crear un usuario manualmente sin recurrir a los comandos al uso, tendríamos que añadir al fichero /etc/psswd una línea similar a la que sigue:

manuel::523:100:ManuelPerezAdministrativo:/home/manuel:bin/Bash

Así, habríamos creado un usuario cuya cuenta recibe el nombre de manuel, con el UID 523, el GID 100, con ManuelPerezAdministrativo como campo GECOS o de comentarios, siendo /home/manuel su directorio de usuario y /bin/Bash su shell por defecto. No tendría contraseña, la cual había que crear con el comando passwd.

/etc/group
Archivo con la lista de grupos y los miembros de cada uno de ellos. Este sería un ejemplo de contenido:

daemon:x:1:<otro>

Desglose:

daemon: nombre del grupo; no puede repetirse y ha de tener un máximo de ocho caracteres.
x: contraseña que permite acceder a un usuario con el comando newgrp (las contraseñas ocultas se sustituyen por una x y se almacenan en el fichero /etc/gshadows).
1: GID, identificador de grupo, que debe ser único.
<otro>: aquí vendrán los nombres de los usuarios miembros del grupo.

Ejemplo de línea añadida manualmente: Compras::1020:Pablo:Silvia:Pedro:Sergio.

/etc/shadow
Archivo donde se almacenan las contraseñas de los usuarios y que solo es accesible como root. Ejemplo de contenido:

daemon:*:14889:0:99999:7:::

Desglose:

daemon: nombre de usuario.
*: contraseña.
14889: fecha de la última modificación de contraseña.
0: nº de días que tardará la contraseña en expirar.
99999: periodo de aviso en días de expiración de contraseña.
7: nº de días que trascurren desde que expira la contraseña hasta que se desactiva la cuenta.
Fecha de desactivación de la cuenta (en caso de proceder).

El campo que lleve un carácter ¡ o un asterisco * indica cuanta bloqueada. Si lleva los caracteres !! o el asterisco * es una cuenta no asignada.

/etc/gshadow
Es el archivo donde se almacenan las contraseñas para los grupos y solo es accesible para root.

Finalizamos con un par de comandos relacionados con todo lo que hemos visto:

grpconv
Sirve para crear el archivo /etc/gshadow y cambiar las contraseñas del archivo /etc/group por una x.

grpunconv
Revierte el resultado de grpconv.

En otro post hablaremos más en profundidad de la creación y gestión de usuarios y grupos. Mientras, escuchemos a este grupo progresivo noruego, Airbag, interpretando "Redemption".