domingo, 25 de enero de 2009

Ficheros de información de los usuarios

Ficheros de información de los usuarios

La información de los usuarios y grupos está incluida en los siguientes archivos:
  • /etc/passwd mantiene la información principal de cada cuenta: nombre de usuario, UID, GID, login shell, directorio home, contraseña (en sistemas antiguos), ...
  • /etc/shadow en sistemas actuales, fichero sin permiso de lectura que guarda las contraseñas encriptadas
  • /etc/group información sobre los grupos definidos en el sistema. nombre del grupo, GID y miembros del mismo
  • /etc/gshadow contraseñas para grupos (no suele usarse)

Fichero /etc/passwd

Ejemplo de líneas de /etc/passwd:
root:x:0:0:root:/root:/bin/bash
pepe:x:1002:1002:Pepe Pótamo,123,981234321,:/home/pepe:/bin/bash
donde se indican (si aparecen :: seguidos, el campo está vacío):
  • pepe: identificación de usuario en el sistema, que deberían tener las siguientes características
    • únicos en toda la organización (no sólo en la máquina local)
    • preferiblemente corto, en minúsculas y sin caracteres acentuados (para evitar problemas)
    • fácil de recordar
    • de formato fijo para todos los usuarios (p.e. nombre+apellido)
  • x: contraseña encriptada
    • si aparece una x la contraseña está en el fichero /etc/shadow
  • 1002: UID número identificador del usuario
    • para usuarios normales, número entre 1000 y 32767 (o 65535 en sistemas actuales)
    • números por debajo de 1000 para usuarios especiales del sistema (root usualmente número 0)
    • el UID para un usuario debería ser único, y el mismo para todas las máquinas
    • se debe evitar reutilizar un UID, para evitar problemas de pertenencia de archivos
  • 1002: GID código del grupo principal al que pertenece el usuario
  • Pepe Pótamo,123,...: información GECOS
    • cualquier cosa, usualmente el nombre completo del usuario y información adicional (n. de despacho, teléfono, etc.)
  • /home/pepe: directorio personal del usuario
  • /bin/bash: shell interactivo que utilizará el usuario

Fichero /etc/shadow

Fichero de acceso restringido que almacena las contraseñas encriptadas:

pepe:$1$.QKDPc5E$SWlkjRWexrXYgc98F.:12825:0:90:5:30:13096:

Contiene para cada usuario la contraseña encriptada y otros campos separados por :

  • día, contado como número de días desde el 1/1/1970 (también conocido como epoch), en que la contraseña se cambió por última vez
    • si vale 0 se fuerza a que el usuario cambia su contraseña la primera vez que se conecta
  • número de días antes de que pueda ser cambiada
  • número de días de validez de la contraseña
  • días en que se avisa al usuario de que la contraseña va a caducar
  • días, una vez expirada, en que se deshabilitará la cuenta
  • día, desde el 1/1/1970, en que la cuenta se inhabilitará
    • si no aparece nada, la cuenta no se inhabilita nunca
  • un campo reservado

Fichero /etc/group

Información sobre los grupos de usuarios
users:x:100:pepe,elena
donde tenemos
  • nombre del grupo
  • contraseña del grupo (no suele usarse)
    • si x, se guarda en el fichero /etc/gshadow
      grupo:contraseña:administradores:miembros
      • los administradores pueden cambiar la contraseña, añadir usuarios al grupo, etc.
    • la contraseña puede fijarse/cambiarse con el comando gpasswd
  • GID identificador numérico del grupo
  • lista de usuarios que pertenecen al grupo
Cambio de grupo
  • un usuario puede cambiar de grupo con newgrp
    • si el grupo no tiene contraseña y no está en gshadow sólo pueden cambiar los miembros del grupo
    • si el grupo tiene contraseña, el usuario debe especificar la contraseña
    • si el grupo aparece en gshadow, la lista de miembros en este fichero pueden cambiar sin contraseña

Otros ficheros

Cuando se crea un nuevo usuario, los ficheros de inicio se copia del directorio /etc/skel
  • el administrador debe crear unos ficheros adecuados para los usuarios, especificando los paths necesarios de ejecución, inicialización de variables del sistema, etc.
  • también pueden usarse los ficheros /etc/profile o /etc/bash.bashrc (ver Tema 3, Ficheros de inicialización de Bash)