Usuarios y grupos. Ficheros de Configuración

Son los ficheros que el sistema lee o modifica a la hora de gestionar los usuarios y los grupos

Contiene en cada una de sus líneas información sobre un usuario. La información se organiza en campos separados por el carácter “:”

Cada línea del fichero tiene la siguiente estructura:

En el último campo, shell, se especifica la ruta al interprete de comandos del usuario. El más utilizado es el bash. Si la shell es /bin/false, también llamado shell nulo, el usuario puede entrar en el sistema pero no a través de una sesión sino que podría ejecutar ciertos procesos a su nombre como mail, ftp, news, ssh,….

En este fichero se almacenan las contraseñas de cada usuario encriptadas. Dada la importancia de la información que almacena sólo el root o un usuario con privilegios de administrador puede tener permiso de lectura sobre él.

Cada vez que un usuario entra al sistema en este fichero se comprueba si la contraseña introducida es correcta.

En sistemas Linux la contraseña encriptada se solía guardar en el campo x de /etc/passwd, utilizando el algoritmo de encriptación DES (Data Encryption Standard, Algoritmo Estándar de Encriptación. Por motivos de seguridad se empezó a utilizar el fichero /etc/shadow y algoritmos de encriptación más complejos. A la forma de utilizar este fichero para almacenar las contraseñas se le llama shadow password.

Los algoritmos de encriptación más utilizados en Linux son DES (en desuso por su poca seguridad), MD-5, SHA-256 y SHA-512.

Para saber cual se ha utilizado, en el archivo shadow, en el campo contraseña, miramos los caracteres de la contraseña, y así sabremos el algoritmo utilizado:

  • DES: son 13 caracteres, de los cuáles los 2 primeros son el valor del salt.
  • MD5: si empieza por $1$, el valor del salt está entre el segundo y tercer carácter '$' de la cadena, al igual que en los siguientes.
  • SHA-256: si empieza por $5$.
  • SHA-512: si empieza por $6$.

Cada línea del fichero /etc/shadow contiene campos separados por ':'. Tiene la siguiente estructura:

El comando mkpasswd, genera contraseñas encriptadas. Algunas de sus opciones son:

  • mkpasswd -m help → Muestra los algoritmos que podemos utilizar
  • mkpasswd -m des → Pide contraseña y la encripta con dicho algoritmo.
  • mkpasswd -m md5
  • mkpasswd -m sha-256
  • mkpasswd -m sha-512 → Generan contraseñas con dichos algoritmos usando salts aleatorios.
  • mkpasswd -m md5 -S 12345678
  • mkpasswd -m sha-256 -S 1234567812345678
  • mkpasswd -m sha-512 -S 1234567812345678 → Elegimos un salt fijo para encriptar

Fichero en el que se encuentran definidos los grupos del sistema.

Cada usuario del sistema debe pertenecer obligatoriamente a un grupo principal o primario. El grupo principal de cada usuario es el grupo cuyo GID viene en el fichero /etc/passwd.

Además, un usuario puede pertenecer a otros grupos, llamados grupos secundarios. No es obligatorio, aunque puede convenir para ciertos casos.

Cada línea del fichero /etc/group tiene la siguiente estructura:

grupo:x:GID:usuarios

Ejemplo:

$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:ivan
tty:x:5:
disk:x:6:
lp:x:7:ivan,user
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:ivan
fax:x:21:ivan
voice:x:22:
cdrom:x:24:ivan
...
rtkit:x:122:
saned:x:123:
ivan:x:1000:
sambashare:x:124:ivan
vboxusers:x:125:ivan
couchdb:x:126:
user:x:1001:
bind:x:127:
mysql:x:128:
gdm:x:129:
ntp:x:130:
clamav:x:131:

El significado de cada campo es el siguiente:

  • nombre: Contiene el nombre del grupo.
  • z: Se utilizaba en los sistemas Unix para almacenar la contraseña del grupo. Actualmente no se suele utilizar, salvo para proteger ciertos grupos de que un usuario no pertenezca a él pueda convertirse en miembor del grupo con el comando newgrp, para lo que se añade * o ! en el fichero /etc/gshadow, o bien se puede añadir una contraseña al grupo con el comando gpasswd.
  • GID: Tiene el mismo significado que en el fichero passwd. Número que identifica al grupo del sistema.
  • usuarios: Lista separada por comas de usuarios que tienen ese grupo como grupo secundario. Para saber el grupo primario deberemos mirar su GID en el fichero passwd.

Fichero donde se guardan las contraseñas de los grupos del sistema. Aunque las contraseñas no se utilicen para los grupos, es necesario el fichero para proteger al grupo. Al igual que shadow, sólo root tiene permiso de lectura sobre el fichero.

Cada línea del fichero tiene la siguiente estructura:

nombre:contraseña:

  • nombre: Nombre del grupo
  • contraseña: Puede ser una contraseña encriptada o bien los caracteres “*” o “!”, dependiendo de si queremos utilizar las contraseñas de grupo o no.

Contiene los valores por defecto a la hora de añadir un usuario al sistema con el comando useradd

Contiene los valores por defecto cuando se añaden usuarios con el comando adduser

Contiene los valores por defecto cuando se eliminan usuarios con el comando deluser.

Si se utiliza el sistema de contraseñas encriptadas, este archivo define algunos valores por defecto sobre la encriptación de contraseñas y otros parámetros al generar un nuevo usuario. Contendrá el algoritmo de encriptación utilizado para las contraseñas (línea ENCRYPT_METHOD) si se va a permitir o no usar la encriptación con el algoritmo MD5 (MD5_CRYT_ENAB), establecer algunas variables del sistema y otros parámetros.

Si buscamos dentro del fichero /etc/login.defs las cadenas de caracteres “encrypt method” y “md5” podemos ver el valor de dichos parámetros
$ grep -i "encrypt_method" /etc/login.defs
ENCRYPT_METHOD SHA512

$ grep -i "md5" /etc/login.defs
#MD5_CRYPT_ENAB	no

La opción -i hace que no diferencie entre mayúsculas y minúsculas.

Contiene la lista de shells válidos. Si el shell del usuario no está en el fichero, o bien el usuario tiene la shell /bin/false, no podrá acceder al sistema mediante login

Directorio que contiene el contenido del directorio home de los nuevos usuarios que se vayan añadiendo al sistema. Se usa como plantilla d elos nuevos usuarios.