viernes, 15 de noviembre de 2013

Tercero: Establecer una contraseña para acceder a la Mac y cambiar la contraseña automáticamente terminada la sesión (Ábrete Sésamo!)

Ya estamos muy cerca del final! Qué emoción, ¿no? Bueno, no me culpen por estar exaltado. En este blog se ve todo muy bonito, pero para llegar a eso hemos pasado por caminos bastante duros de recorrer.
Nuestra recomendacion es, si no entendemos el código de bash, leer sobre bash; si no entendemos sobre vi, leer sobre vi y asi con todo.
Es importante no frenarse ante el primer error o inconveniente, sino tratar de buscar la forma de solucionarlo y/o, de no poderse, buscar alternativas.

Accederemos al shell mediante PuTTy, crearemos un archivo con vi llamado "cambiarpw.bash" con el siguiente código:

sudo /bin/echo $RANDOM | /usr/bin/perl -we 'BEGIN { @k = unpack "C*", pack "H*", "1734516E8BA8C5E2FF1C39567390ADCA"}; $_ = <>; chomp; s/^(.{8}).*/$1/; @p = unpack "C*", $_; foreach (@k) { printf "%02X", $_ ^ (shift @p || 0) }; print "\n"' | sudo /usr/bin/tee /Library/Preferences/com.apple.VNCSettings.txt

Este código utiliza la variable $RANDOM de bash para generar contraseñas de números enteros aleatorios.
Para averiguar cuál es la contraseña usaremos el siguiente código:

sudo /bin/cat /Library/Preferences/com.apple.VNCSettings.txt | /usr/bin/perl -wne 'BEGIN { @k = unpack "C*", pack "H*", "1734516E8BA8C5E2FF1C39567390ADCA"}; chomp; @p = unpack "C*", pack "H*", $_; foreach (@k) { printf "%c", $_ ^ (shift @p || 0) }; print "\n"'

Lo que estamos haciendo es modificar el archivo "/Library/Preferences/com.apple.VNCSettings.txt" que tiene la contraseña encriptada del VNC Server, poniendole una propia cada vez que ejecutamos cambiarpw.bash.

Bueno, sería un poco molesto que los usuarios que acaban de salir pudiesen meterse antes de hacerse el cambio de contraseña, por lo que lo haremos todo al mismo tiempo. Cerraremos la sesión y cambiaremos el archivo de contraseñas; para sazonarlo mas, la mostraremos en el terminal, sino no la sabemos ni nosotros (otra que Alí Babá):

#cambiar
sudo /bin/echo $RANDOM | /usr/bin/perl -we 'BEGIN { @k = unpack "C*", pack "H*", "1734516E8BA8C5E2FF1C39567390ADCA"}; $_ = <>; chomp; s/^(.{8}).*/$1/; @p = unpack "C*", $_; foreach (@k) { printf "%02X", $_ ^ (shift @p || 0) }; print "\n"' | sudo /usr/bin/tee /Library/Preferences/com.apple.VNCSettings.txt

#checkear
sudo /bin/cat /Library/Preferences/com.apple.VNCSettings.txt | /usr/bin/perl -wne 'BEGIN { @k = unpack "C*", pack "H*", "1734516E8BA8C5E2FF1C39567390ADCA"}; chomp; @p = unpack "C*", pack "H*", $_; foreach (@k) { printf "%c", $_ ^ (shift @p || 0) }; print "\n"'

#cerrar
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -off -restart -agent -privs -all -allowAccessFor -allUsers

Bueno, todo está hecho. Con un administrador que reciba el pedido de uso de la computadora y se encargue de enviar la IP y contraseña a los clientes, ya se puede tener en funcionamiento el trabajo.

En la siguiente entrada, hablaremos un poco de cómo se podría automatizar el proceso via web.

Nos vemos!

No hay comentarios:

Publicar un comentario