ls -l /etc/passwd
da
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Entonces, un usuario común puede leer el archivo. ¿Es este un agujero de seguridad?
ls -l /etc/passwd
da
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Entonces, un usuario común puede leer el archivo. ¿Es este un agujero de seguridad?
Respuestas:
Los hashes de contraseñas reales se almacenan /etc/shadow
, lo que no es legible por los usuarios habituales. /etc/passwd
contiene otra información sobre identificadores de usuario y shells que todos los usuarios deben poder leer para que el sistema funcione.
/etc/shadow
. El uso de los BSD /etc/master.passwd
. Usos de Solaris /etc/security/passwd
. HP-UX usa /.secure/etc/passwd
y la lista continúa ...
Por lo general, las contraseñas hash se almacenan en la /etc/shadow
mayoría de los sistemas Linux:
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
(Se almacenan en /etc/master.passwd
el sistemas BSD ).
Los programas que necesitan realizar autenticación aún deben ejecutarse con root
privilegios:
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
Si no le gustan los setuid root
programas y un solo archivo que contiene todas las contraseñas hash en su sistema, puede reemplazarlo con el módulo Openwall TCB PAM . Esto proporciona a cada usuario su propio archivo para almacenar su contraseña hash ; como resultado, la cantidad de setuid root
programas en el sistema puede reducirse drásticamente.
Las contraseñas no se han almacenado en /etc/passwd
años; el nombre es heredado, la función de ser la base de datos de usuarios local permanece y debe ser legible por todos para ese propósito.
Hasta cierto punto lo es, ya que puede identificar a los usuarios. En el pasado también podías recoger sus contraseñas. Sin embargo, el único ID de usuario que realmente vale la pena descifrar es root
el bien conocido sin el archivo de contraseña.
La utilidad de que el archivo de contraseña sea legible en todo el mundo generalmente supera el riesgo. Incluso si no fuera legible para el mundo, un getent passwd
comando en funcionamiento anularía la ganancia de seguridad.
La capacidad de los usuarios no root para identificar archivos propiedad de otros desaparecería. Ser capaz de identificar los archivos propios (usuario en el archivo passwd) y los no propios (usuario no en el archivo passwd) puede ser útil para revisar el contenido de un sistema de archivos. Si bien sería posible resolver esto con los setuid
programas apropiados , eso agregaría un gran vector de ataque a través de esos programas.
Al final, es una cuestión de equilibrio, y en este caso, diría que el equilibrio está firmemente en tener una contraseña mundial legible.