En realidad, / etc / shadow se creó para permitir alejarse de una lista pública de nombres de usuario y contraseñas.
Espera, esta será una pequeña lección de historia, antes de llegar a la respuesta real. Si no te importa la historia, solo desplázate un poco hacia abajo.
En los viejos tiempos, los sistemas operativos tipo Unix, incluido Linux, generalmente mantenían las contraseñas en / etc / passwd. Ese archivo era legible en todo el mundo, y todavía lo es, porque contiene información que permite la asignación, por ejemplo, entre ID de usuario numéricos y nombres de usuario. Esa información es muy útil incluso para usuarios comunes con fines perfectamente legítimos, por lo que tener el mundo legible en el archivo fue de gran beneficio para la usabilidad.
Incluso en aquel entonces, las personas se dieron cuenta de que tener las contraseñas en texto plano en un archivo en una ubicación conocida que cualquiera que pudiera iniciar sesión podía leer libremente era una mala idea. Así que las contraseñas fueron hash, en cierto sentido Ese es el antiguo mecanismo de cifrado de contraseñas "cripta", que casi nunca se usa en los sistemas modernos, pero a menudo es compatible con fines heredados.
Eche un vistazo a / etc / passwd en su sistema. ¿Ves ese segundo campo, que dice en x
todas partes? Solía contener la contraseña hash para la cuenta en cuestión.
El problema era que la gente podía descargar / etc / passwd, o incluso no descargarlo, y trabajar en descifrar las contraseñas. Esto no fue un gran problema, mientras que las computadoras no eran particularmente poderosas (Clifford Stoll, en The Cuckoo's Egg , da, según recuerdo, el tiempo para descifrar una contraseña en un sistema de clase de PC IBM a mediados de la década de 1980 como aproximadamente un segundo ), pero se convirtió en un problema a medida que aumentaba la potencia de procesamiento. En algún momento, con una lista de palabras decente, descifrar esas contraseñas se volvió demasiado fácil. Por razones técnicas, este esquema tampoco podía admitir contraseñas de más de ocho bytes.
Se hicieron dos cosas para resolver esto:
- Pasar a funciones hash más fuertes. La antigua cripta () había sobrevivido a su vida útil, y se diseñaron esquemas más modernos que estaban preparados para el futuro y eran computacionalmente más fuertes.
- Mueva las contraseñas hash a un archivo que no sea legible por cualquiera. De esta forma, incluso si una función de hash de contraseña resultó ser más débil de lo esperado, o si alguien tenía una contraseña débil para empezar, había otro obstáculo para que un atacante obtuviera acceso a los valores de hash para comenzar. Ya no era gratis para todos.
Ese archivo es / etc / shadow.
El software que funciona con / etc / shadow es generalmente muy pequeño, altamente enfocado y tiende a recibir un escrutinio adicional en las revisiones debido a la posibilidad de problemas. También se ejecuta con permisos especiales, lo que le permite leer y modificar / etc / shadow, mientras mantiene a los usuarios normales incapaces de mirar ese archivo.
Así que ahí lo tiene: los permisos en / etc / shadow son restrictivos (aunque, como ya se señaló, no tan restrictivos como usted dice) porque el propósito de ese archivo es restringir el acceso a datos confidenciales.
Se supone que un hash de contraseña es fuerte, pero si su contraseña está en las 500 principales contraseñas en las listas de Internet , cualquiera que tenga acceso al hash aún podrá encontrar la contraseña rápidamente. Proteger el hash evita ese ataque simple y eleva el listón para un ataque exitoso, desde una simple ojeada hasta requerir que uno sea administrador del sistema en el host o pasar primero por un ataque de escalada de privilegios. Especialmente en un sistema multiusuario administrado correctamente, ambos son significativamente más difíciles que solo mirar un archivo legible en todo el mundo.
/etc/shadow
son600
?