¿Por qué / etc / passwd está abierto al público para leer?
12
¿Hay alguna razón por la que / etc / passwd sea legible en todo el mundo? No es como los hashes de contraseñas que no deberían exponerse, solo quiero saber por qué.
Creo que cuando su shell de elección sabe expandirse ~useral directorio de inicio del usuario, en realidad está buscando eso /etc/passwd, por lo que es bueno tenerlo legible en lugar de otorgar a todos los shells derechos elevados.
Ulrich Schwarz
Expandir "~" es una función de la variable $ HOME: establezca $ HOME en / var / tmp y luego, si hace "cd ~", cambiará a / var / tmp.
Saurabh Hirani
Respuestas:
14
/etc/passwda veces se llama la base de datos del usuario. Eso debería darnos una pista de por qué debe ser legible por todos. Cualquier utilidad que inspeccione los metadatos de los archivos debe poder leer /etc/passwd(y /etc/group) para poder resolver los ID numéricos utilizados por el núcleo y sus subsistemas con los nombres amigables para los humanos en los que confiamos. Las herramientas que necesitan encontrar su directorio de inicio (agentes de entrega de correo, etc.) buscan esa información /etc/passwdy los inetminiservers fingerdbuscan sus detalles /etc/passwd.
Como se ha señalado en otra parte, no hay datos particularmente confidenciales en el archivo, ya que los sistemas modernos colocan los hashes de contraseña en un archivo de contraseña oculto, que solo puede leer el usuario root.
Entonces, ¿se llama por razones históricas passwdcuando de hecho este nombre no refleja lo que está en el archivo?
Emanuel Berg
8
Sí, eso creo. En las primeras versiones de UNIX, las contraseñas se almacenaban /etc/passwd(¡sin cifrar al principio!). En el momento en que los hashes de contraseña se movieron a un archivo oculto, ya existían muchas utilidades que dependían de otros datos /etc/passwd, por lo que el nombre se quedó.
D_Bye
7
/etc/passwdno contiene hashes de contraseñas (por lo que no es un gran problema). /etc/shadowcontiene hashes de contraseña y solo es legible por root (y grupo de sombra)
~user
al directorio de inicio del usuario, en realidad está buscando eso/etc/passwd
, por lo que es bueno tenerlo legible en lugar de otorgar a todos los shells derechos elevados.Respuestas:
/etc/passwd
a veces se llama la base de datos del usuario. Eso debería darnos una pista de por qué debe ser legible por todos. Cualquier utilidad que inspeccione los metadatos de los archivos debe poder leer/etc/passwd
(y/etc/group
) para poder resolver los ID numéricos utilizados por el núcleo y sus subsistemas con los nombres amigables para los humanos en los que confiamos. Las herramientas que necesitan encontrar su directorio de inicio (agentes de entrega de correo, etc.) buscan esa información/etc/passwd
y losinet
miniserversfingerd
buscan sus detalles/etc/passwd
.Como se ha señalado en otra parte, no hay datos particularmente confidenciales en el archivo, ya que los sistemas modernos colocan los hashes de contraseña en un archivo de contraseña oculto, que solo puede leer el usuario root.
fuente
passwd
cuando de hecho este nombre no refleja lo que está en el archivo?/etc/passwd
(¡sin cifrar al principio!). En el momento en que los hashes de contraseña se movieron a un archivo oculto, ya existían muchas utilidades que dependían de otros datos/etc/passwd
, por lo que el nombre se quedó./etc/passwd
no contiene hashes de contraseñas (por lo que no es un gran problema)./etc/shadow
contiene hashes de contraseña y solo es legible por root (y grupo de sombra)fuente