martes, 2 de octubre de 2012

Infortunios

En estos días estaba por comprarme una nueva placa de video; se acerca Resident Evil 6, y quería tener algo decente para jugarlo. Todo estaba preparado ya: mi señora me había dado permiso, y ya tenía el dinero preparado para la NVIDIA GTX 560 TI. Todo se reducía a comprar la placa, pagarla, traerla a casa, instalarla, probarla, y jugar a lo que sea mientras esperaba que llegara Resident Evil... pero no, nada de eso. Mi disco rígido parece estar en las últimas. Tenía unos sectores defectuosos, pero no me trajeron problemas en estos últimos años, hasta hoy (que era, justamente, el día de la compra de la placa). Mientras estoy viendo qué pasa, trato de reparar el disco rígido defectuoso con el gnome-disk-utility, desde un live cd de Linux Mint, distribución que me parece fantástica, y que si no fuera porque hace ya muuuchos años uso Slackware, la utilizaría sin ninguna duda. 
En fin, tengo que ver qué pasa con el rígido... la placa de video ya la descartamos hasta fin de año.

Asi se ve el live cd de Linux Mint.
Update: El rigido está mal, la transferencia está en el orden de los 2 MB/s, cuando deberían ser 100 MB/s, por lo menos... Mientras veo cómo reparar eso, me hice con un nuevo rígido SATA 3, y ya instalé en él Slackware 14, que se instaló en 15 minutos, contados desde que instalé el disco rígido hasta que bootee con el nuevo SO; y también habilité una partición para dejar en forma permanente LINUX MINT MAYA, que debo decir que me gusta mucho. Una vez que resguarde los datos del rígido anterior, veré si encuentro una forma de reestablecerle la velocidad de transferencia.

Saludos.

jueves, 20 de septiembre de 2012

Cuerpo del blog transparente en Wordpress

Otra vez escribo algo de Wordpress en Blogspot =) ... pero no es por capricho; es mejor tener entradas duplicadas... además este post es chiquito; más que nada es un recordatorio. Resulta que quería saber cómo podía hacer para el el cuerpo del post en el otro sitio se viese semi-transparente... y googleando por aquí y por allí me encontré con que agregando ésto al final del archivito style.css lograba el efecto deseado.
Era algo así:



body #page {background-color:rgba(0,0,0,0.7);}


Y es efectivo, realmente resulta. En este caso el color resulta ser un negro semitransparente. Para que en vez de negro sea blanco, sería:

body #page {background-color:rgba(255,255,255,0.7);}

¿Qué cómo se llega a style.css? Fácil: uno se loguea y hace Apariencia->Editor->Estilos; se selecciona style.css y se navega hasta el final, se añade la línea que ya cité y listo. Y lo posteo porque no es muy fácil llegar a esta solución; claro que hay explicaciones más largas y elegantes, pero la que a mí realmente me dió resultado fue está, y yo cumplo en informarlo...

Saludos!

domingo, 16 de septiembre de 2012

Recuperar usuario en Wordpress


Finalmente logramos recuperar el server, que sirve mi propio sitio (ulijese.no-ip.org) y el de mi esposa (sop.no-ip.info). Se puede hablar de un milagro, ya que al server sólo se le había quemado la fuente de alimentación, y cambiándola se solucionaron una parte de los problemas, pero hacer reaccionar el disco rígido llevó tiempo.
Finalmente, con la fuente ya cambiada y el rígido funcionando, el server comenzó a funcionar como siempre, es decir, uno enciende la pc y la deja allí, trabajando sola y abandonada, confiando en que nada puede salir mal.
Y claro, nada anda mal, y como nada anda mal, pues podemos ir haciendo alguna cosa... en particular, la página de mi mujer es algo viejita, la hizo ella cuando a duras penas tenía idea de HTML, así que pensamos hace un tiempo que no estaría mal que actualizáramos su formato. Instale Wordpress, creé la base de datos, me lié con la creación de los usuarios y los permisos y tuve todo ese tipo de problemas que suelen tenes los hobbistas... pero al final logré hacer correr Wordpress tanto para mi sitio como para el de mi señora.
De eso pasó un año, mes más, mes menos, y en mi blog no tengo problemas, ya que accedo al él con regularidad; otro cantar fue cuando hace algunos días quise retomar la tarea de actualizar el sitio de mi señora... no recordaba qué contraseña tenía el usuario administrador.
Eso me lleva a contar por qué escribo este post: no es más que una excusa para recordarme cómo recuperar la clave la próxima vez que lo olvide.
Algunos datos:
La base de datos que corre en la pc que hace de server es mysql; tengo acceso al server por ssh. Googleando por ahí, me enteré que la clave de los usuarios está encriptada. Lo lógico, entonces, era (y es):
  1. Entrar a la base de datos.
  2. Buscar la tabla de usuarios (no era dificil, solo está dado de alta la cuenta del admin)
  3. Borrar de la tabla el valor de la contraseña
  4. Generar una nueva clave, y ponerla encriptada en el lugar de la contraseña que borré antes.
  5. Entrar desde la página y modificar nuevamente la contraseña.
Suena fácil, y es fácil si se lo hace regularmente; yo solo meto mano a las bases de dato una o dos veces al año; me costó mucho. Además, ví que mucha gente utiliza phpadmin, y yo desconocía su existencia. Mi experiencia fue pura consola. No me avergüenza.
En fin...
1.- Accedí al server (llamado ochentayseis) desde mi pc, la noventaynueve, que tiene , para este ejemplo, una ip xxx.xxx.xxx.xxy, vía ssh, desde una xterm; se debe reemplazar xxx.xxx.xxx.xxx por la ip que tenga cada uno:
julian@noventaynueve:~$ ssh -l root xxx.xxx.xxx.xxx
root@xxx.xxx.xxx.xxx's password:
Last login: Sun Sep 16 01:08:04 2012 from xxx.xxx.xxx.xxy
Linux 2.6.38.7.

2.- Una vez logueado, entre a mysql y fui tirando comandos hasta resolver el problema; primero muestro todos los pasos, luego los explico:

root@ochentayseis:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 48892
Server version: 5.1.56 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use blog 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>  show tables;
+---------------------------+
| Tables_in_blog            |
+---------------------------+
| wp_blogcommentmeta        |
| wp_blogcomments           |
| wp_bloglinks              |
| wp_blogoptions            |
| wp_blogpostmeta           |
| wp_blogposts              |
| wp_blogterm_relationships |
| wp_blogterm_taxonomy      |
| wp_blogterms              |
| wp_blogusermeta           |
| wp_blogusers              |
+---------------------------+
11 rows in set (0.00 sec)

mysql> describe wp_blogusers;
+---------------------+---------------------+------+-----+---------------------+----------------+
| Field               | Type                | Null | Key | Default             | Extra          |
+---------------------+---------------------+------+-----+---------------------+----------------+
| ID                  | bigint(20) unsigned | NO   | PRI | NULL                | auto_increment |
| user_login          | varchar(60)         | NO   | MUL |                     |                |
| user_pass           | varchar(64)         | NO   |     |                     |                |
| user_nicename       | varchar(50)         | NO   | MUL |                     |                |
| user_email          | varchar(100)        | NO   |     |                     |                |
| user_url            | varchar(100)        | NO   |     |                     |                |
| user_registered     | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| user_activation_key | varchar(60)         | NO   |     |                     |                |
| user_status         | int(11)             | NO   |     | 0                   |                |
| display_name        | varchar(250)        | NO   |     |                     |                |
+---------------------+---------------------+------+-----+---------------------+----------------+
10 rows in set (0.03 sec)

mysql> SELECT user_login FROM wp_blogusers;
+------------+
| user_login |
+------------+
| admin      |
+------------+
1 row in set (0.00 sec)

mysql> SELECT user_pass FROM wp_blogusers;
+------------------------------------+
| user_pass                          |
+------------------------------------+
|  1f13e4646e9b8f517f8232e9e1a8bdd4  |
+------------------------------------+
1 row in set (0.00 sec)

mysql> update wp_blogusers set user_pass="" where user_login="admin";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT user_pass FROM wp_blogusers;
+-----------+
| user_pass |
+-----------+
|           |
+-----------+
1 row in set (0.00 sec)

mysql> update wp_blogusers set user_pass="81dc9bdb52d04dc20036dbd8313ed055" where user_login="admin";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT user_pass FROM wp_sopblogusers;
+----------------------------------+
| user_pass                        |
+----------------------------------+
| 81dc9bdb52d04dc20036dbd8313ed055 |
+----------------------------------+
1 row in set (0.00 sec)

mysql> quit
Bye
root@ochentayseis:~#

Hay mucho para contar; empezamos por:
mysql -u root -p

que es el comando que usamos para entrar a la cosola Mysql, con -u xxxx indicamos que xxxx es el usuario que accederá, en mi caso, fue con root; con -p indicamos que nos deje poner la contraseña.
Luego usamos el comando use:

mysql> use blog

De acuerdo al manual de Mysql:
El comando USE db_name le dice a MySQL que use la base de datos db_name como la base de datos por defecto para los comandos siguientes. Sigue siendo la base de datos por defecto hasta el final de la sesión o hasta que se realiza otro comando USE
En este caso estaríamos trabajando en la base de datos llamada blog.
El comando show tables; (el punto y coma es parte del comando) nos muestra las tablas que tiene la base de datos blog. En esas tablas vemos que está la de usuarios (la llamada wp_blogusers), que es la que nos interesa.
Luego hacemos:

mysql> describe wp_blogusers;

De acuerdo al manual de mysql:
DESCRIBE proporciona información acerca de columnas en una tabla
Dentro de la tabla wp_blogusers está la columna Field, que contiene los valores  user_login, es decir, los de logueo de cada usuario del blog, y user_pass, es decir, el password.
Usé el comando SELECT para ver los valores que tenían user_login y user_pass. A esta altura ya estamos cerca de la solución. Primero borro el valor de la contraseña del admin:

mysql> update wp_blogusers set user_pass="" where user_login="admin";

Donde dice set user_pass="", estamos diciendo, en realidad, que se reemplace el valor anterior con lo tenemos entre las comillas, en este caso, nada. Para comprobar que realmente no había quedado nada en ese campo, repetí el comando 

mysql> SELECT user_pass FROM wp_blogusers;

que mostró user_pass vacío.

Luego fui a una página en la que generé un hash con una cadena conocida; en el ejemplo, 1234. Es decir, por un lado, el admin se loguearía desde el login de la página con el valor 1234, pero en la base de datos este valor debe estar encriptado; la página enlazada nos da el valor que tendrá 1234 ya encriptado; dicho valor se vuelca a nuestra base de datos de la siguiente forma:

mysql> update wp_blogusers set user_pass="81dc9bdb52d04dc20036dbd8313ed055" where user_login="admin";

El último SELECT lo hago para comprobar que realmente se ha asignado el valor al usuario, y todo listo, ya me puedo desloguear tranquilo de la consola mysql, de la sesión ssh y puedo entrar al blog con el usuario admin y la contraseña 1234; más tarde, pero ya desde el propio blog, cambiaré a una contraseña más segura.

Eso fue todo! Espero que le sirva a alguien, aunque estoy seguro que muchos tienen una herramienta como phpadmin que facilita mucho las cosas.

No puedo dejar de nombrar -y agradecer- este post que fue el que me mostró un poco el camino a seguir, y que, en difinitiva, muestra como hacer esto mismo pero sin tanta consola.

Saludos!



lunes, 6 de agosto de 2012

Primer post

Bueno, ¿cómo decirlo? hace unos diez días un corte de luz mató un disco rígido que contenía un par de sitios, uno de mi señora (sop.no-ip.info) que habla del síndrome de ovarios poliquísticos y tenía un foro, y otro mío (ulijese.no-ip.org) un sitio modesto y de un estilo viejo y quedado en el tiempo. Para practicar un poco, había instalado Wordpress y había posteado un par entradas, apenas unas fotos de mis gatos, algún que otro link, algunas imágenes... Pero todo lo que tenía sobre Wordpress se perdió. 
Tal vez por curarme de espanto, porque ya me había pasado algo parecido, había tomado la precaución de hacer backups mensuales; tal vez por confiado los hice sobre el mismo rígido que se murió; nunca creí que el rígido iba a resultar fulminado completamente... pero así ocurrió. Una lástima.
Así que hice todo lo que estaba al alcance de mi mano para reflotar los sitios que se murieron, y fue así que recurrí a virtualbox y a una imagen que tenía de los dos sitios, y ahora están ambos arriba, pero desactualizados. Al menos lo van a estar hasta que logre resucitar el disco rígido que falleció hace poco.
Mientras tanto, me dí una vueltita por acá para probar qué tal es esto de tener un blog en un servidor que no haya montado, que no es mío... tiempo al tiempo, ya veré que pongo y qué hago...
Saludos.

Julian.
P.D.: Malas noticias... no quedo ningún backup de ulijese.no-ip.org... a seguir sufriendo!