Control de acceso

Tradicionalmente la base de datos de usuarios se encuentra en /etc/passwd. Algunos sistemas utilizan contraseñas "shadow", y las almacenan en /etc/shadow. Los sitios con muchos ordenadores que comparten las cuentas utilizan NIS o algún otro método para almacenar la base de datos de usuarios; pueden copiar automáticamente la base de datos de una localización central al resto de ordenadores.

La base de datos de usuarios contiene no sólo las contraseñas, sino también información adicional sobre los usuarios, como sus nombres reales, directorios iniciales, y los intérpretes de comandos. Esta otra información necesita ser pública, de manera que cualquiera pueda leerla. De esta forma la contraseña se almacena encriptada. Esto provoca que cualquiera con acceso a la contraseña pueda usar varios métodos criptográficos para adivinarla, sin ni siquiera intentar acceder al sistema. Las contraseñas "shadow" intentan evitar esto moviendo las contraseñas a otro archivo, el cuál sólo puede leer root (la contraseña se almacena igualmente encriptada). En cualquier caso, instalar las contraseñas "shadow" más adelante en un sistema que no las soporta puede ser complicado.

Con o sin contraseñas, es importante asegurar que todas las contraseñas en un sistema son válidas, es decir, no son fácilmente adivinables. El programa "crack" puede utilizarse para romper contraseñas; cualquier contraseña que pueda encontrar es por definición una mala contraseña. Mientras que "crack" puede ser ejecutado por intrusos, también puede ser ejecutado por el administrador del sistema para evitar malas contraseñas. El propio programa "passwd" puede forzar buenas contraseñas; esto es de hecho más eficiente en términos de ciclos de CPU, ya que romper contraseñas necesita de bastantes cálculos.

La base de datos de los grupos se guarda en /etc/group; para sistemas con contraseñas "shadow", puede existir /etc/shadow.group.

Generalmente root no puede acceder a través de la mayoría de terminales o a través de la red, sólo mediante los terminales listados en el archivo /etc/securetty. Esto hace necesario tener acceso físico a uno de estos terminales. Por lo tanto es posible acceder mediante cualquier terminal como otro usuario, y utilizar el comando su para convertirse en root.