Antonio Castro wrote:
> Tu script genera claves dentro de /etc/passwd lo cual no se suele usar,
> porque todo el mundo puede copiarlo y luego procesarlo con fuerza bruta.
> Lo mejor es usar shadow pero afortunadamente se puede pasar la claves
> de /etc/passwd a /etc/shadow con: pwconv
No genera claves "dentro de /etc/passwd", sino a partir de /etc/passwd y
las pone en un fichero que puedes colar donde quieras. Para quien use
"shadow passwords", no necesita convertirlas con pwconv. Basta
substituir /etc/passwd por /etc/shadow en la primera l�nea del programa.
(O quien tenga las contrase�as en alg�n otro fichero, pues tendr� que
poner all� la localizaci�n del fichero.)
Lo que s� se puede hacer para mejorar el programa, es que altere
�nicamente la contrase�a de los que realmente tengan contrase�a y que en
usuarios.txt solo escriba los nombres y contrase�as de estos:
################# passwd.pl, versi�n 2 ##############################
#!/usr/bin/perl
# si usas "shadow passswords", substituye "/etc/passwd" por
"/etc/shadow":
open PWD, '</etc/passwd';
open USERS, '>>usuarios.txt';
open ENCR, '>>passwd.txt';
while (<PWD>) {
($user, $encr, $info) = /^([^:]*):([^:]*)(.*)$/;
if (length($encr) == 13) {
$salt = join '', ('.', '/', 0..9, 'A'..'Z','a'..'z')[rand 64, rand 64];
$pwd = join '',(0..9,'A'..'Z','a'..'z',';',':','.',',','+','-','=')
[rand 69, rand 69, rand 69, rand 69, rand 69, rand 69,
rand 69, rand 69];
$encr = crypt $pwd, $salt;
print USERS "$user\t$pwd\n";
}
print ENCR "$user:$encr$info\n";
}
#####################################################################
Este script lo puede usar tambi�n quien desconf�e que tiene algunas
contrase�as d�biles en su sistema y quiera cambiarle autom�ticamente la
contrase�a a todos los usuarios. Recordad que el script no cambia las
contrase�as, sino os sugiere unas nuevas (usuarios.txt) que debereis
colar en el lugar apropiado (despu�s de ver com MUCHO cuidado el fichero
passwd.txt y hacer una copia de seguridad del /etc/passwd antiguo; no me
hago responsable por ficheros passwd arruinados!)
Saludos,
Jaime