Hasta ahora el único nombre de usuario que se usaba en mi página con WordPress era admin, no hay duda de que esto supone una situación comprometida para mi sitio. Es obvio que es más vulnerable a ataques pues ya se conoce un nombre de usuario existente en la web y ya solo necesitamos conocer la contraseña para conseguir acceso.
Los pasos son muy sencillos, en este caso he decidido usar la consola de comandos de MySQL, me resulta más cómoda la consola para tareas que no son complicadas, como esta.
mysql -u root -h localhost -p Entramos en la consola de administración de MySQL poniendo la contraseña de root para MySQL, suponiendo que root es el usuario.
show databases; Mostramos las bases de datos que tenemos y buscamos la de WordPress.
use wordpress; Indicamos que vamos a trabajar sobre la base de datos wordpress.
show tables; Mostramos las tablas y buscamos la tabla wp_users.
describe wp_users; Vemos la estructura de la tabla wp_users.
select user_login from wp_users; Mostramos toda la información de todos los usuarios que tenemos y buscamos el usuario admin y miramos su id, que probablemente sea 1.
update wp_users set user_login = "mi_nuevo_nombre" where ID = 1; Cambiamos el nombre de usuario para identificarnos en la web por el que prefiramos.
Si te ha resultado útil podrías te agradecería que me ayudaras a mantener el blog,
En una entrada anterior explicaba como instalar SparkleShare desde un Overlay de Gentoo. En este caso vamos a instalar la última versión (0.4.0) de SparkleShare desde su repositorio oficial Git. Hay que tener en cuenta que tomamos como referencia la entrada anterior, por lo que se tiene en cuenta que hemos llevado a cabo los pasos anteriores y tenemos resueltas las dependencias de SparkleShare.
# emerge -C sparkleshare -q Desinstalamos la versión antigua de sparkleshare.
$ mkdir ~/src/ Creamos un directorio donde contener las fuentes si no existiera.
$ cd ~/src/ Nos movemos al direcotorio creado.
$ git clone https://github.com/hbons/SparkleShare.git Descargamos las fuentes de SparkleShare.
$ cd SparkleShare/ Entramos en el directorio de las fuentes.
$ ./autogen.sh --prefix=/usr/local Generamos el Makefile.
$ make Construimos…
$ su -c "make install" Y por último instalamos en /usr/local/.
Si ejecutamos desde consola sparkleshare start veremos como se inicia nuestro cliente…
¡Si te ha resultado útil puedes invitarme a una cervecita!
Hoy vamos a ver como instalar Sparkleshare en un servidor propio y su uso en una estación de trabajo. He leído hablar de él y también me parecía genial la idea de poder tener un algo similar a Dropbox pero en mi propio servidor. La idea es genial, en el servidor tenemos ssh como servicio y en los clientes instalamos Sparkleshare y Git.
En el lado del servidor solo es necesario tener en funcionamiento el servicio ssh, y al menos un usuario en el servidor que será el que tenga acceso a su carpeta compartida. En el lado del cliente será necesario tener instalado openssh para usarlo como cliente (que yo ya tenía instalado), git y sparkleshare.
# chmod g+s /home/sparkleshare (con esto conseguimos que los ficheros y directorios creados por usuario pertenezcan al grupo sparkleshare)
# su usuario -c “git init –bare /home/sparkleshare/usuario/usuario.git”
2. Preparar la máquina cliente:
Instalamos Sparkleshare en la máquina de trabajo cliente, también con Gentoo:
# layman -a betagarden Añadimos el overlay betagarden a nuestro portage.
# layman -S Sincronizamos todos nuestros overlays de terceros.
# echo "app-backup/sparkleshare ~amd64" >> /etc/portage/package.keywords/sparkleshare Aceptamos sparkleshare para instalar como inestable.
# emerge -avq sparkleshare Lo instalamos.
$ sparkleshare start Y lo ejecutamos como usuario.
3. Configurar Sparklshare en la máquina cliente:
Ponemos nuestro nombre y la dirección de correo-e a la que queremos que Sparkleshare nos envíe notificaciones.
¡Antes de continuar es importante este paso! En este momento Sparkleshare ha creado una pareja de claves pública y privada para su uso con ssh para la comunicación con el servidor. Tenemos que agregar la clave pública a nuestro usuario en nuestro servidor para permitir el acceso con las claves generadas por Sparkleshare.
$ ssh-copy-id -i .config/sparkleshare/sparkleshare.usuario@micorreo.com.key.pub usuario@miservidor Ejecutamos esto como usuario en la máquina cliente para copiar la clave pública en el servidor.
En la siguiente ventana de configuración ponemos el servidor con el nombre de usuario, por ejemplo: usuario@miservidor. Y en nombre de la carpeta ponemos la ruta completa al repositorio git en este caso sería /home/sparkleshare/usuario/usuario.git.
Bien, ahora sí podemos pulsar en “sincronizar”.
¡¡Y ahora a probarlo!!
5. Otras consideraciones para la configuración:
Debemos tener en cuenta que si nuestro puerto de acceso a ssh no es el puerto 22 por defecto, Sparkleshare no funcionará pues no tenemos en la interfaz ninguna forma de indicar el puerto de conexión. Sin embargo sí que hay una solución para ello. Haremos lo siguiente en el equipo cliente como usuario: $ nano -w ~/.ssh/config Creamos y editamos el fichero.
Host ejemplo.com
Port 1234
4. Opinión del estado actual del proyecto Sparkleshare:
Todavía es un proyecto joven al que le falta pulir muchas cosas y añadir muchas funciones más. Detecta bien los cambios de nombre de fichero, la adición de ficheros, la modificación de su contenido, la eliminación… Sin embargo el interfaz gráfico todavía deja bastante que desear. Se ve que se están centrando más en el comportamiento y funcionamiento de la sincronización.
Si te ha resultado útil y te gustaría compensarme invitándome a una cervecita o bien ayudánme con los gastos del blog:
Descargamos el kernel y la imagen de inicio de la instalación por red. Y los movemos a una carpeta llamada netboot.
Creamos una imagen de disco que será usada por Qemu: qemu-img create -f qcow hda.img 20G, el tamaño puede variar dependiendo de la necesidad de espacio que podamos tener.
Iniciamos la instalación de Debian: qemu-system-arm -M versatilepb -kernel netboot/vmlinuz-2.6.32-5-versatile -initrd netboot/initrd.gz -hda hda.img -append "root=/dev/ram"
Imagen del inicio del arranque de la instalación por red de Debian
Esperamos a que inicie el programa de instalación y seguimos las indicaciones en pantalla, en principio es una instalación normal como en un ordenador normal.
Instalación de Debian - Selección de idioma
Instalación de Debian - Instalación del sistema base
Para los fines que le daré a este sistema, no necesito por ejemplo un entorno de escritorio, pero sí que necesitaré un servidor ssh.
Instalación de Debian - Selección de programas
No debemos preocuparnos por no instalar un cargador de arranque, ya que le pasaremos los parámetros de arranque a Qemu.
Instalación de Debian - Cargador de arranque
Y por fin terminamos la instalación, debemos tener en cuenta que el sistema de instalación reinicia el sistema, por lo que volvería a iniciar el sistema de instalación. Así que lo mejor sería dejar que reinicie, y una vez que lo haya hecho, cerramos Qemu.
Instalación de Debian - Reiniciar sistema
Descargamos el kernel y la imagen de inicio que usaremos para iniciar el sistema instalado. Y para terminar solo queda probar nuestra nueva instalación con el comando que usaremos para arrancar nuestro sistema Debian: qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda hda.img -append "root=/dev/sda1"
Recompilar el kernel activando las siguientes características:
Device Drivers --->
Graphics support --->
<*> /dev/agpgart (AGP Support) --->
<*> Modul für deinen Chipsatz wählen
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<*> ATI Radeon
[*] Enable modesetting on radeon by default
Y también:
Device Drivers --->
Generic Driver Options --->
-*- Userspace firmware loading support
[*] Include in-kernel firmware blobs in kernel binary
(radeon/R700_rlc.bin) External firmware blobs to build into the kernel binary
(/lib/firmware) Firmware blobs root directory
En esta última versión de Cygwin han solucionado algo que resultaba bastante molesto y que hacía de las instalaciones de Cygwin un sistema nada versátil. En las versiones de 1.5.* y anteriores de este sistema, se registraban los puntos de montaje en el registro del Windows que había instalado el sistema Cygwin. Por lo que para usarlo en otros equipos había que hacer unos truquitos que nos explicaba Vicente Navarro en su genial blog.
Por suerte ahora no hay que hacer tantas peripecias para tener un sistema Cygwin que podamos llevar y traer en una memoria flash o disco duro portátil. Sin embargo, sí que todavía hay que instalar bastantes paquetes útiles que no se instalan por defecto y hacer algunos pequeños cambios de configuración para que se comporte como queremos. Y por supuesto, esto es lo que voy a explicar hoy.
Antes de empezar con las instrucciones, me gustaría contar por qué uso Cygwin y por qué de modo portable. Bien, el caso es que odio ir a una oficina de trabajo y encontrarme con un sistema que no dispone de una auténtica consola Bash, openssh y otras tantas utilidades Unix o GNU/Linux con las que me desenvuelvo tan estupendamente. Si el equipo que tengo asignado es un Windows, sé que siempre puedo usar Putty, pero me limita mucho sobre todo si tengo que interactuar con otros equipos Unix o GNU/Linux en una red local. Con openssh dispongo scp y el cliente ssh, además de un demonio sshd. ¡Lo más sorprende es que se puede incluso instalar KDE o Gnome en Cygwin! Otra cosa que es realmente útil es disponer tanto de cliente Xorg y como servidor Xorg. Con lo que incluso podemos iniciar aplicaciones gráficas de forma remota en nuestro Windows. ¡Ofrece un montón de posibilidades!
Una cosa que hecho en falta es que no se pueda ejecutar el instalador en modo consola desde una sesión Bash, sería fantástico poder manejar el instalador como un gestor de paquetes estilo apt, rpm o portage. Quién sabe, quizás algún día en una nueva versión nos sorprendala gente de Cygwin.
Bueno, no me enrollo más, vamos al meollo del asunto. La idea es hacer una instalación en nuestro sistema (al que llamaremos a partir de ahora Cygwin/X Base), y del cual crearemos la versión portable (a la que nos referiremos como Cygwin/X Portable. De este modo tendremos una copia de seguridad en casa, nuestro equipo de trabajo o donde hayamos escogido hacer la instalación. También será Cygwin/X Base el que usaremos para mantener actualizado Cygwin/X Portable, aunque ya no sea necesario hacer todo esto a partir de la versión 1.7.*, pero es solo para ir manteniendo una copia de seguridad de la instalación por si perdiéramos la memoria flash. Por último, para tener la instalación y la versión portable debidamente sincronizadas haremos uso de rsync.
1.- Instalación de Cygwin/X.
Nos bajamos el instalador de la web oficial, y lo ejecutamos.
Una vez ejecutado seguimos los siguientes pasos:
Seleccionamos Install from internet.
Podemos dejar el directorio de instalación de la raíz del sistema por defecto (C:\cygwin), pero si lo preferimos otro lugar es el momento de escoger otro lugar. Recomiendo dejar marcada la opción Install for All Users.
Elegimos el directorio donde se descargarán los paquetes que serán usados para ser instalados en el sistema Cygwin/X Base.
La opción más común será Direct Connection, en otro caso pulsa sobre lo que proceda.
Ahora debemos decidir de qué servidor espejo (mirror) queremos descargar los paquetes de instalación, yo normalmente uso el espejo que hay en kernel.org.
No debemos preocuparnos de la alerta, sobre todo si es nuestra primera instalación, pulsamos en Aceptar y continuamos.
Vamos indicando qué paquetes vamos a instalar, para ir más rápido podemos ir escribiendo los nombres en la caja de búsqueda de arriba a la derecha, hacemos clic sobre el circulito de las flechitas y se nos marcará dicho paquete para ser instalado. El instalador es capaz de resolver las dependencias él solo, por lo que no tenemos que preocuparnos de eso. Los paquetes que yo suelo instalar son: openssh, nano, rsync, xinit, X-start-menu-icons, xclipboard, xhost, xorg-server, xterm, wget, screen… Y cualquier otro paquete que consideres que te puede ser últil.
Aceptamos las dependencias que nos avisa que serán necesarias.
Esperamos pacientemente a que se instale.
Ya está instalado, ahora escogemos si quieremos accesos directos, yo personalmente solo los quiero en el menú de inicio de Windows, además, luego usaré esos accesos directos para copiarlos y personalizarlos.
2.- Creación de Volumen Cifrado TrueCrypt.
He decidido llevarlo en un volumen cifrado porque de este modo puedo guardar algunas claves privadas para iniciar sesiones SSH o otras claves ahí almacenadas sin temor a que sean accedidas por otras personas. La ventaja de usar esto además de proteger nuestros datos ante la lectura de terceros es que al usar TrueCrypt para montar el volumen cifrado como otra unidad más, podemos escoger la “letra” por lo que podemos asegurarnos de que siempre será la misma. Por ejemplo, podemos usar la T:\ de TrueCrypt. Esto es importantísimo para la adaptación de la instalación para ser portable, como veremos más adelante.
Para llevar a cabo la creación del volumen cifrado os recomiendo que sigáis la guía que escribí para Omeyas Web, en la que explico paso a paso como hacerlo. Solo debéis tener en cuenta que una vez terminado el proceso debéis dejar montado el volumen en la unidad T:\ para poder seguir los ejemplos y pasos de esta guía.
3.- Adaptación de Cygwin/X para uso portable.
Básicamente lo que vamos a hacer ahora es copiar el Cygwin/X Base al Cygwin/X Portable y hacer algunos cambios para que funcione con normalidad en cualquier equipo Windows XP/Vista/7 al que lo llevemos.
Tenemos que copiar C:\cygwin a T:\, no importa si lo haces en el intérprete de comandos de Windows o con el clásico arrastrar y soltar. Lo importante es que te asegures que se ha copiado todo y que el resultado es que tienes una carpeta llamada T:\cygwin.
Modificar el fichero T:\cygwin\cygwin.bat para que quede de este modo: @echo off
T:
chdir T:\cygwin\bin
bash --login -i
Cambiar variable de entorno HOME y USER. Editamos el fichero T:\cygwin\etc\profile la parte que es como lo que sigue: # Set the user id
USER="`id -un`"
export USER
Para que quede como esta otra: # Set the user id
USER="miusuario"
export USER
export HOME="/home/${USER}"
Teniendo en cuenta que miusuario es el nombre de usuario usado para hacer la instalación inicial de Cygwin/X. Para salir de dudas puedes probar a ejecutar id -un en una lína de comandos Cygwin. Es importante tener en cuenta que una vez que modifiquemos manualmente este fichero pasa a ser responsabilidad nuestra mentenerlo al día, pues si en alguna de las sucesivas actualizaciones se hiciera algún cambio en este fichero, Cygwin ya no lo hará, dejando ese menester para nosotros.
Vamos al menú Inicio de Windows, copiamos el acceso directo de Cygwin/X (o bien XWin Server) a T:\ y modificamos esta copia del acceso directo. Cambiamos la casilla Destino por: T:\cygwin\bin\run.exe /usr/bin/bash.exe -l -c "exec /home/inicializar.sh"
Teniendo en cuenta que miusuario es el usuario usado en la sesión de Windows en la que se ha hecho la instalación de Cygwin. La casilla Iniciar en quedaría T:\cygwin\bin.
Configuración XWin copiar T:\cytwin\etc\X11\system.XWinrc a T:\cygwin\home\miusuario\.XWinrc y lo editamos a nuestro gusto, en mi caso he dejado el menú apps de este modo: // Make some menus...
menu apps {
xterm exec "xterm -ls +tb -fg white -bg black"
"Emacs" exec "emacs"
notepad exec notepad
xload exec "xload -display %display%" # Comment
}
Creamos el fichero T:\cygwin\home\miusuario\.startxwinrc que ejecutará al inicio xterm, el mío ha quedado así: xterm -ls +tb -fg white -bg black
Creamos el fichero T:\cygwin\home\inicializar.sh, que contiene esto: #!/bin/bash
usuario=`id -un`
if [ "${usuario}" != "miusuario" ]
then
ln -sf /home/miusuario /home/${usuario}
fi
mkpasswd -l -c > /etc/passwd
mkgroup -l -c > /etc/group
startxwin -- -nolock
Configuración de Bash, añadimos las líneas siguientes al final de T:\cygwin\home\miusuario\.bashrc: export PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \w $\[\033[00m\] "
alias ls='ls --color'
4.- Actualización de Cygwin/X y sincronización de Cygwin/X Base y Cygwin/X Portable.
El proceso para mantener actualizado nuestro Cygwin/X Portable es bien simple. Serían básicamente dos pasos: actualizar Cygwin/X Base y copiar los cambios a Cygwin/X Portable.
Actualizar Cygwin/X Base, tan simple como volver a ejecutar el instalador de Cygwin. Recordará todas las opciones que escogimos al principio, cuando lleguemos a la sección de escoger los paquetes a instalar, seleccionamos que queremos actualizarlos.
Usamos rsync para copiar todos los ficheros que han cambiado de nuestro Cygwin/X Base con respecto a nuestro Cygwin/X Portable. Pero sin sobreescribir T:\cygwin\Cygwin.bat y T:\cygwin\etc\profile.
Por tanto, habría que sincronizar la instalación de Cygwin/X de C:\ con la de T:\ excluyendo el Cygwin.bat y el fichero /etc/profile, para eso debemos iniciar una consola Bash de Cygwin/X Base, es muy importante que hagamos rsync desde el sistema base y sin tener ningún proceso en ejecución en el sistema portable, para evitar errores al copiar archivos: $ rsync --modify-window=1 -av --exclude cygwin/Cygwin.bat --exclude cygwin/etc/profile --exclude cygwin/home/* /cygdrive/c/cygwin /cygdrive/t/
Por otro lado, también parece conveniente tener una copia del directorio HOME del Cygwin/X Portable, en el Cygwin/X Base. De este modo tenemos una copia de seguridad de nuestro directorio de trabajo en el equipo. En este caso el comando se ejecuta en el sistema portable y teniendo cuidado de no tener ningún proceso del sistema base en ejecución: $ rsync --modify-window=1 -av /cygdrive/t/cygwin/home /cygdrive/c/cygwin/
5.- Cuestiones a tener en cuenta.
En caso de pérdida, robo, o corrupción de datos de la memoria flash o cualquier situación en la que ya no podamos volver a recuperar la memoria o su contenido, debemos volver a llevar a cabo los pasos 2, 3.1, 3.2, 3.3 y 3.4.
Al usar Cygwin/X Portable en un equipo nuevo podríamos encontrarnos errores debido a que intente buscar el $HOME asociado a un usuario Windows con nombre diferente al que hizo la instalación de Cygwin/X Portable. Ejemplo, el nombre de usuario que estábamos usando durante la instalación de nuestro Cygwin/X Portable era PabloMármol, pero en el sistema que estamos ahora haciendo uso de Cygwin/X Portable, el usuario de Windows que ha iniciado sesión es PedroPicapiedra. Esto, junto con la modificación /etc/profile para cambiar el $HOME, provocará que no se pueda encontrar la ruta /home/PabloMármol. Para evitar esto, haremos un enlace simbólico de PabloMármol a PedroPicapiedra: $ cd /home
$ ln -s PedroPicapiedra PabloMármol
Si te ha resultado útil y te gustaría compensarme invitándome a una cervecita o bien ayudánme con los gastos del blog:
Un ScreenCast es al vídeo lo que un SnapShot (pantallazo o captura de pantalla) a la fotografía. Hay algunos programas que realizan capturas de vídeo de lo que se muestra en nuestra pantalla, unos con mejores resultados que otros y también con mayor o menor dificultad de uso. Ejemplo de ello son Istanbul y RecordMyDesktop, dos soluciones que podrían funcionar muy bien. Sin embargo, no me permiten grabar sonido de un micrófono mientras graba la pantalla, para por ejemplo dar explicaciones mientras muestras algo. Cosa que puede ser bastante útil. Hace unos meses descubrí que ffmpeg es capaz de esto y me puse a hacer algunas pruebas para conseguir grabar vídeos con la característica de que se pudiera oír mi voz dando algunas explicaciones. En realidad no era para nada muy serio, pero en alguna ocasión me ha surgido la situación que querer explicar a alguien cómo hacer algo, y la verdad que tardaría un minuto en hacerlo con un vídeo así y no como sería con una explicación por escrito, que además si no me explico bien, quizás pueda llevar más a confusión. Veamos las opciones de ejecución por separado:
-i dispositivo se usa para indicar el dispositivo de entrada tanto para vídeo como para audio.
-f formatoes para indicar el formato de entrada ya sea de vídeo o de audio.
-r n consigue que se haga la grabación n fotogramas por segundo.
-s tamaño es la forma que tiene ffmpeg de recibir el tamaño de captura de pantalla, puede ser indicado de varias formas, como 640x480 o bien su equivalente vga. Podemos ver una lista de nombres para los diferetesta tamaños aquí o bien poner un tamaño diferente de la forma valorxvalor.
-b se usa para estipular la tasa de bits por segundo que se van a usar en la salida ya sea de vídeo o sonido, ejemplo: -b 128k.
-sameq consigue que se haga la captura con la misma calidad que tenga la propia entrada. Haciendo que la tasa de bits por segundo de la salida sea la necesaria como para que no sea apreciable ninguna pérdida de calidad con respecto a la entrada. Si usas esta opción, no es neceseario usar -b.
-async n muy útil para conseguir una buena sincronización del sonido de entrada y la imagen. De este modo, si grabamos nuestra voz mientras grabamos el vídeo veremos como nuestras palabras van en sincronía con el vídeo.
Algunos ejemplos:
$ ffmpeg -f oss -i /dev/dsp salida.mpg Para capturar sonido con OSS.
$ ffmpeg -f alsa -i plughw:1,0 salida.mpg Para capturar sonido con ALSA.
$ ffmpeg -f -x11grab -i :0.0 -s 1280x1024 -r 25 salida.mpg Para capturar vídeo de la pantalla.
$ ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -sameq Desktop/out.mpg Para capturar vídeo de la webcam.
$ ffmpeg -async 1 -f alsa -i plughw:1,0 -f x11grab -s 1440x900 -r 25 -i :0.0 -b 128k Desktop/out.mpg Capturar vídeo y sonido a la vez.
Estamos de enhorabuena, Google al fin ha publicado su versión de Google Talk Plugin para los usuarios de GNU/Linux tanto en 32 bits como en 64 bits. Los distribuyen como paquetes Debian, pero no es problema, podemos descomprimirlos e instalarlos a mano en cualquier distribución GNU/Linux sin mucha complicación.
Descargamos el paquete .deb de este enlace. En mi caso reconoció que uso un sistema de 64 bits, supongo que influye el hecho de que uso un navegador compilado para 64 bits.
$ ar x google-talkplugin_current_amd64.deb Descomprimimos el paquete .deb.
# tar xzf data.tar.gz --exclude=opt --exclude=etc --strip-components 2 -C /usr
# tar xzf data.tar.gz --exclude=usr --exclude=etc --strip-components 2 -C /opt Extraemos solo los ficheros necesarios para instalar el plugin.
$ /opt/google/talkplugin/GoogleTalkPlugin Comprobamos si es capaz de encontrar las bibliotecas necesarias ejecutando este comando.
# ln -s /usr/lib/libssl.so /usr/lib/libssl.so.0.9.8
# ln -s /usr/lib/libcrypto.so /usr/lib/libcrypto.so.0.9.8 Si nos da algún error, tenemos que crear enlaces simbólicos de las bibliotecas que nos pidiera.
Si algo te ha resultado útil, te ha ahorrado tiempo o dinero, o simplemente te ha gustado mi blog, puedes darme la voluntad para ayudarme a pagar los costos del sitio o bien que pueda tomarme una cerveza a tu salud :-)