Las contraseñas normalmente se almacenan en /etc/shadow
, que los usuarios no pueden leer. . Sin embargo, históricamente, se almacenaron en el archivo legible para el mundo /etc/passwd
junto con Toda la información de la cuenta. Para la compatibilidad con versiones anteriores, si un hash de contraseña está presente en la segunda columna en /etc/passwd
, tiene prioridad sobre el que está en /etc/shadow
.
Históricamente, un segundo campo vacío en /etc/passwd
significa que la cuenta no tiene contraseña, es decir, cualquier persona puede iniciar sesión sin una contraseña (utilizada para cuentas de invitado). Esto a veces está deshabilitado. Si las cuentas sin contraseña están deshabilitadas, puede poner el hash de una contraseña de su elección. Puede utilizar la función crypt
para generar hashes de contraseña, por ejemplo, perl -le 'print crypt("foo", "aa")'
para establecer la contraseña en foo
.
Es posible obtener acceso a la raíz incluso si solo puede agregar a /etc/passwd
y no sobrescribir el contenido. Esto se debe a que es posible tener varias entradas para el mismo usuario, siempre que tengan nombres diferentes: los usuarios se identifican por su ID, no por su nombre, y la característica definitoria de la cuenta raíz no es su nombre sino el hecho de que tiene un ID de usuario 0. Por lo tanto, puede crear una cuenta raíz alternativa agregando una línea que declare una cuenta con otro nombre, una contraseña de su elección y un ID de usuario 0.