Feliz Navidad

La Navidad es la época más linda y esperada del calendario. Significa
reunión de familias, de padres e hijos, de Hermanos, parientes y
amigos. Época de cavilar sobre nuestros aciertos y desaciertos,
nuestros sueños, esperanzas y logros.

Es época de recordar que todos formamos parte de un todo, que todos
somos hermanos y estamos unidos por lazos invisibles. No somos seres
aislados, todo lo que hacemos tiene efecto en los demás.

Compartamos nuestra alegría y nuestra mesa.

Feliz Navidad!!!

Eliminar ruido en audio de ubuntu 9.10

En Ubuntu Karmic 9.10 las laptops (Ej: HP y Compaq) con tarjetas de sonido intel emiten un molesto ruido cada vez que alguna aplicación va hacer uso de la tarjeta. Esto se debe a que en Ubuntu 9.10 con el propósito de ahorrar energía encienden y apagan la tarjeta de sonido cada vez que va ser usada, haciendo este molesto ruido.
Para eliminarlo debemos:
- Editar el fichero alsa-base.conf
   Presionar ALT+F2
   Escribir gksudo gedit /etc/modprobe.conf.d/alsa-base.conf
- Comentar la línea
   #options snd-hda-intel power_save=10 power_save_controller=N

Iniciar compiz con tarjetas gráficas que estén en la lista negra

Existen tarjetas gráficas que dan una serie de problemas corriendo Compiz Fusion, no soportando algunos plugin de este. Estas tarjetas están en una lista negra en compiz-manager, por lo que para iniciar compiz usando una de estas es necesario ignorar la lista.

   # echo SKIP_CHECKS=yes >> ~/.config/compiz/compiz-manager

Desconectar un usuario remoto en Linux

Puede darse el caso de que nos hayamos conectado por ssh a un servidor o una PC desde otra que no es la nuestra, y por alguna razón nos hayamos ido y se nos ha quedado la conexión abierta, por lo que necesitamos desde nuestra PC cerrar esta conexión para evitar la entrada de intrusos.
- Para lograrlo, necesitamos conocer la consola en la que está conectado el usuario
   # who
Lo que mostrará algo como:
   root pts/0 2009-12-14 17:01 (:0.0)
   root pts/1 2009-12-14 18:19 (:0.0)
Acá nos percatamos que la conexión que dejamos abierta es la identificada por pts/0
- Luego buscamos el PID de su shell
   # ps -ax | grep pts/0
Obteniendo algo como:
   3484 pts/0 Ss+ 0:00 bash
   4017 pts/1 S+ 0:00 grep pts/0
Siendo el PID el valor de la línea identificada por pts/0 y el proceso "bash", en este caso 3484
- Y por último matamos el proceso
   # kill -9 3484

Calcular espacio que ocupa una base de datos en postgres

Para calcular el espacio que ocupa en disco duro una base de datos en postgres debemos conectarnos a esta a través de nuestro administrador de base de datos (ej: pgAdmin o phpPgAdmin), y ejecutar la siguiente sentencia SQL:
   select pg_size_pretty(pg_database_size('nombre_base_datos')) as size;
Otra vía es ejecutando en la consola de linux:
   # sudo su postgres
   # psql -d nombre_base_datos -c "select pg_size_pretty(pg_database_size('nombre_base_datos')) as size;"

Denegar Ping con Iptables

Si queremos pasar como fantasmas en la red de nuestro trabajo una de las cosas que tenemos que hacer es denegar el ping a nuestra máquina. Esto podemos lograrlos añadiendo las siguientes reglas en el iptable:
   # iptables -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
   # iptables -A INPUT -i eth0 -p icmp --icmp-type time-exceeded -j ACCEPT
   # iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT
   # iptables -A INPUT -i eth0 -p icmp -j DROP

Nota: Tambien podemos eliminar el -i eth0 y bloquear el ping en todas las interfaces de red.

Ahora, existe una forma más fácil de lograrlo y es poner el valor "icmp_echo_ignore_all" a 1 de manera permanente, para ello puedes hacer lo siguiente:
- Editar sysctl.conf
   # sudo nano /etc/sysctl.conf
- Agregar la línea
   net.ipv4.icmp_echo_ignore_all = 1

Inicio automático de programas en sistemas GNU/Debian

Para lograr en sistemas GNU/Debian o derivados de este que un programa inicie automáticamente al iniciar el sistema operativo debemos crear enlaces en los niveles de ejecución de la siguiente forma:
   # update-rc.d nombre_programa defaults numero_de_prioridad_de_inicio
- Deshabilitar el inicio automatico de programas
   # update-rc.d -f nombre_programa remove

Activar Ctrl+Alt+Retroceso en Ubuntu Jaunty 9.04

En los sistemas GNU/Linux podemos reiniciar el servidor de ventanas a través de la combinación de teclas Ctrl+Alt+Retroceso, sin embargo esta opción fue desactivada en Ubuntu Jaunty 9.04, por lo que si necesitamos reiniciar las X tendremos que ir a una consola y ejecutar:
   # sudo /etc/init.d/gdm restart
No obstante, podemos activar nuevamente el funcionamiento de esta combinación de teclas editando el xorg.
   # sudo /etc/X11/xorg.conf
y poner al final del fichero
   Section "ServerFlags"
       Option "DontZap" "false"
   EndSection
Otra forma de hacerlo es instalando "dontzap"
   # sudo aptitude install dontzap
y ejecutar
   # sudo dontzap -d

Instalar JSON en php5.1.x

Para poder ejecutar sobre php5.1.x aplicaciones que hagan uso de la librería JSON es necesario realizar una instalación manual del módulo para que la aplicación puede operar sin problema alguno.

Instalar librería en Debian
- Instalar dependencia necesaria
   # aptitude install php5-dev
- Si estamos detrás de un proxy es necesario configurarlo
   # pear config-set http_proxy http://usuario:contraseña@ip.addr.of.proxy:puerto
- Instalar la librería
   # pear channel-update pear.php.net && pear install pecl/json
- Crear fichero de configuración de la librería para php
   # nano /etc/php5/conf.d/json.ini
- Adicionar el contenido "extension=json.so" (sin las comillas)

Instalar librería en CentOS 5.3
- Instalar dependencia necesaria
   # yum install php-devel
- Si estamos detrás de un proxy es necesario configurarlo
   # pear config-set http_proxy http://usuario:contraseña@ip.addr.of.proxy:puerto
- Instalar la librería
   # pear channel-update pear.php.net && pear install pecl/json
- Crear fichero de configuración de la librería para php
   # nano /etc/php.d/json.ini
- Adicionar el contenido "extension=json.so" (sin las comillas)

fuente: http://www.sysadmin.cl/v2/?p=273

Trabajo con fechas en sistemas Unix

Una de las operaciones frecuentes de un administrador de sistemas Unix es el trabajo con fechas, por lo que es necesario conocer algunas de las cosas que se pueden hacer con ellas:
- Cambiar la hora del sistema
   # date -s hh:mm
- Cambiar fecha del sistema
   # date --set "YYYY-MM-DD hh:mm"
- Cambiar hora y fecha del BIOS
   # hwclock --set --date="YYYY-MM-DD hh:mm"
Nota: Hay un bug en linux que provoca que en algunos sistemas no se pueda cambiar la fecha del BIOS con la sentencia anterior. Para lograrlo es necesario lo siguiente:
   # hwclock --directisa --set --date="YYYY-MM-DD hh:mm"
- Configurar sistema para que tome la hora UTC (GTM)
   > Editar /etc/default/rcS
   # nano /etc/default/rcS
   > Poner UTC=yes si desea poner su reloj UTC (GMT), y UTC=no en caso contrario.
   > Luego o bien reiniciamos, o bien reajustamos el reloj de la placa ejecutando
   # /etc/init.d/hwclock.sh restart
- Determinar tu zona horaria
   # tzselect
- Cambiar zona horaria
   # cp /usr/share/zoneinfo/Tuzona/Horaria /etc/localtime

Solucionar "error 13" que da el grub en Ubuntu Jaunty 9.04 cuando se convierte el sistema raíz a ext4

Una de las características que trae Ubuntu Jaunty 9.04 es la incorporación del sistema de ficheros ext4, el cual entre otras cosas mejora grandemente el desempeño de su PC. Sin embargo, cuando se actualiza desde Ubuntu Intrepid 8.10 a Jaunty, manualmente hay que convertir el sistema de ficheros de ext3 a ext4 si desea en verdad notar una mejora considerable en el rendimiento del sistema operativo (SO).
Puede suceder que luego de convertir el sistema raíz a ext4, al reinicar Ubuntu, el grub de un "error 13: Invalid or unsupported executable format", lo que puede solucionarse de la siguiente manera:
- Si puedes entrar al SO con el kernel viejo:
   # sudo grub-install /dev/sda
- Sino, desde un livecd:
   # sudo mkdir /mnt/linux
   # sudo mount -t ext4 /dev/sda1 /mnt/linux
   # sudo mount -t proc proc /mnt/linux/proc
   # sudo mount -t sysfs sys /mnt/linux/sys
   # sudo mount -o bind /dev /mnt/linux/dev
   # sudo chroot /mnt/linux
   # sudo grub-install --recheck /dev/sda

Actualizar desde Debian Etch a Debian Lenny

Para actualizar la versión estable de Debian Etch a Lenny, solo es necesario realizar los siguientes pasos:
- Editar el sources.list
   #nano /etc/apt/sources.list
- Cambiar donde quiera que diga etch a lenny
- Realizar un update
   #aptitude update
- Actualizar apt, dpkg y aptitude
   #aptitude install apt dpkg aptitude
- y por último actualizar el sistema completo
   #aptitude full-upgrade

Nota: dist-upgrade fue renombrado a full-upgrade en el aptitude de lenny

Activar el funcionamiento de los botones del brillo de las laptops HP Compaq Presario en Ubuntu Hardy 8.04

Existe un problema en Ubuntu Hardy 8.04 con las laptop HP Compaq Presario que hace que los botones del brillo no funcionen, lo cual se resuelve modificando los scripts para subir (/etc/acpi/video_brightnessup.sh) y bajar (/etc/acpi/video_brightnessdown.sh) el brillo.

- Para arreglar el botón de subir brillo reemplazar el contenido de /etc/acpi/video_brightnessup.sh por este:

#!/bin/bash
#. /usr/share/acpi-support/key-constants
#acpi_fakekey $KEY_BRIGHTNESSUP

RUTA="/proc/acpi/video/OVGA/DD03/brightness"
let CIEN=100
let SUMAR=10

let VALOR=`tail -n 1 /proc/acpi/video/OVGA/DD03/brightness | cut -f 2 -d ' '`

if [ $VALOR -lt $CIEN ] ; then
let VALOR=$VALOR+$SUMAR
echo $VALOR > $RUTA
fi

- Para arreglar el botón de bajar brillo reemplazar el contenido de /etc/acpi/video_brightnessdown.sh por este:

#!/bin/bash
#. /usr/share/acpi-support/key-constants
#acpi_fakekey $KEY_BRIGHTNESSDOWN

RUTA="/proc/acpi/video/OVGA/DD03/brightness"
let CERO=0
let RESTAR=10

let VALOR=`tail -n 1 /proc/acpi/video/OVGA/DD03/brightness | cut -f 2 -d ' '`

if [ $VALOR -gt $CERO ] ; then
let VALOR=$VALOR-$RESTAR
echo $VALOR > $RUTA
fi

Entrar a linux como root y apoderarse del sistema + SOLUCIÓN

En una ocasión, un gran amigo y tristemente un fanático de windows encontró una entrada en un blog donde explican como entrar como root a un linux a través del grub.
- Encender la PC
- Presionar la tecla 'esc' para que aparezca el prompt del grub.
- Presionar la tecla 'e' para editar la entrada del grub.
- Ubicarse sobre la línea que empieza por kernel y presionar la tecla 'e' para editarla.
- Ir al final de la línea y reemplazar "ro quiet splash" por "rw init=/bin/bash".
- Presionar 'enter' y luego presionar la tecla 'b' para que arranque el sistema.

Como es lógico, enseguida quiso presentarlo como un bug de linux, lo cual no es así, puesto que es una funcionalidad que tiene el kernel, el que al pasarle estos parámetros (rw init=/bin/bash) lo que hace es activar el init 1, pues linux por lo general corre en init 3 o init 5 (funcionalidad la cual puede servir para recuperar la contraseña del root en caso de haberla perdido o recuperar un fallo en el sistema como tal)
No obstante, si desea que ningún intruso haga uso de esta funcionalidad para entrar a su sistema como root y apoderarse del mismo, lo único que tiene que hacer es ponerle contraseña al grub.
- Editar el grub
   # nano /boot/grub/menu.lst
- Descomentar la línea 'password PASSWORD' y poner la clave deseada
- Insertar el comando 'lock' debajo de cada entrada 'title'
- Guardar el fichero y listo

fuente: http://foros.hackerss.com/lofiversion/index.php/t4902.html
           http://ubuntuforums.org/archive/index.php/t-3609.html

Eliminar el pedido de la llave privada del certificado SSL al reiniciar Apache

Una vez que se configura el servidor web Apache con conexión segura a través de SSL, al reiniciarlo solicita una clave privada para culminar el proceso de reiniciado, por lo que es necesario eliminar la llave privada del certificado SSL para que cuando vuelva a reiniciar no pida la clave.
Para lograrlo es necesario realizar lo siguiente:
- Se hace una copia del certificado
   # cp /etc/apache2/ssl/ssl.key/server.key /etc/apache2/ssl/ssl.key/server.key.org
- Nos colocamos dentro del directorio donde se encuentran los certificados
   # cd /etc/apache2/ssl/ssl.key
- Removemos la clave privada del certificado
   # openssl rsa -in server.key.org -out server.key
- Y por último, le otorgamos al certificado los permisos de solo lectura para el usuario root para que nadie más pues acceder al contenido del mismo.
   # chmod 400 server.key

Actualizar desde postgresql-8.1 a postgresql-8.3

Primeramente debe instalar las últimas versiones de los paquetes (postgresql-8.3 y postgresql-client-8.3)
   # aptitude install postgresql-8.3
Tenga en cuenta que la instalación de postgresql-8.3 creará automáticamente un clúster por omisión 8.3/main. Tiene que borrar el clúster 8.3 existente
   # pg_dropcluster --stop 8.3 main
Luego, necesita actualizar el clúster 8.1/main a 8.3
   # pg_upgradecluster 8.1 main
Posteriormente, elimina el clúster 8.1/main después de actualizar los clústers que tenga.
   # pg_dropcluster 8.1 main
Por último, elimina los paquetes postgresql-8.1 y postgresql-client-8.1
   # aptitude purge postgresql-8.1 postgresql-client-8.1

Convertir las minúsculas en mayúsculas y algo más

El comando "tr" es muy útil para producir una salida con la sustitución o eliminación de caracteres seleccionados dada una entrada determinada. Veamos su sintaxis.
   tr [options] "set1" "set2"
   echo something | tr "set1" "set2"
   tr "set1" "set2" < input.txt > output.txt
Ahora veamos, como haciendo uso de este podemos convertir en un fichero las minúsculas en mayúsculas
   # tr [:lower:] [:upper:] < fichero1.txt > fichero2.txt
pudiéramos también convertir los espacios en blanco en líneas
   # tr [:blank:] '\n' < fichero1.txt > fichero2.txt
lo que también podría hacerse con el uso de tuberías
   # cat fichero1.txt | tr [:blank:] '\n' > fichero2.txt
o podríamos eliminar de un fichero todos los fin de líneas
   # tr -d '\n' < fichero1.txt > fichero2.txt

fuente: http://www.cyberciti.biz/faq/how-to-use-linux-unix-tr-command/

Sincronización manual de directorios a través de SSH

Por distintas razones, a veces hacemos de forma manual copias remotas de algún directorio de interés de nuestra pc; luego continuamos modificando el contenido del directorio local convirtiéndose la salva remota en una copia desactualizada o viceversa, haciéndose necesario sincronizar dichos directorios.
- Sincronización del directorio remoto a partir del local
   # rsync -e ssh -auvz /ruta/directorio/local/ usuario@host_remoto:/ruta/directorio/remoto
- Sincronización del directorio local a partir del remoto
   # rsync -e ssh -auvz usuario@host_remoto:/ruta/directorio/remoto/ /ruta/directorio/local

Recuperar contraseña del root de MySql

Si olvida la clave de root del MySql después de haberla establecido, puede cambiarla entrando a la cuenta de administrador (root) del sistema.
- Detenga el servidor.
   # /etc/init.d/mysql stop
- Inicie el servidor de la forma
   # /usr/sbin/mysqld --user=root --skip-grant-tables &
- Ejecute
   # mysql
   mysql> use mysql
   mysql> update user set password=password('nueva_clave') where user='root';
   mysql> flush privileges;
   mysql> exit
- Reinicie el servidor normalmente
   # /etc/init.d/mysql restart

Descargar un sitio web a tu disco duro

En Windows existe una herramienta muy conocida para descargar sitios web a tu disco duro (Teleport Pro), pudiéndolos visualizar luego de manera offline. Esta posibilidad te la brinda en Linux el comando wget.
   # wget -krmnp http://glosario-x.blogspot.com

Instalar programas desde código fuente sin permiso de root

Cuando sólo podemos acceder a un Linux con una cuenta de usuario sin permisos de administración, puede que necesitemos utilizar aplicaciones que no están instaladas en el mismo, y al carecer de los permisos de root se nos imposibilita instalarla de manera global en el sistema operativo. Sin embargo, teniendo el código fuente de esta, podemos instalarla en nuestro home de la siguiente forma:
- Descomprimimos el código fuente de la aplicación y una vez dentro de este directorio ejecutamos
   # mkdir ~/apps
   # ./configure --prefix=/home/`whoami`/apps && make && make install

Eliminar librerías huérfanas de tu Linux

Cuando instalas un paquete éste suele tener dependencias, las cuales se instalan automáticamente. Si desinstalas ese paquete padre (con apt-get ó dpkg), las dependencias se quedarán en el disco ocupando un espacio inútil. Nunca está de más ver si tenemos paquetes huérfanos ocupando espacio en nuestro disco y eliminarlos para mantener nuestro sistema más limpio.
   # sudo aptitude install deborphan
   # for i in `deborphan` ; do sudo dpkg --purge $i ; done

Nota: Este comando es muy útil si utilizas apt o dpkg para administrar los paquetes de tu sistema. Si usas aptitude no hace falta usarlo porque él mismo se encarga de eliminar los paquetes huérfanos.

fuente: http://www.guia-ubuntu.org/index.php?title=Deborphan

Recuperar GRUB de Linux

Si por alguna razón, después de haber instalado Linux instalamos un Windows, este último sobreescribe el MBR (Master Boot Record) del disco duro y hace que perdamos la entrada a nuestro linux, por lo que debemos recuperar el grub del sistema operativo para poder entrar nuevamente a linux. Para esto tomamos un live cd de linux y en una consola haremos lo siguiente:
   # sudo su
   # mkdir /mnt/P
   # mount /dev/sda1 /mnt/P
   # mount -t proc none /mnt/P/proc
   # mount -o bind /dev /mnt/P/dev
   # chroot /mnt/P
   # grub
   grub> root(hd0,1)
   grub> setup (hd0)
   grub> quit

Reiniciamos la pc y veremos nuevamente el grub del linux recuperado

Descargar video streamming con mplayer

Comando para descargar un streamming con mplayer
   # mplayer -dumpfile /path/to/save/file.wmv -dumpstream mms://ip.addr.of.server/file.wmv

Instalar paquetes de un repositorio de Internet a través de un proxy

Cuando nos encontramos detrás de un proxy y adicionamos un repositorio de internet, una vez que tratamos de actualizarlo (con "apt-get update" o "aptitude update") nos percatamos de que esta operación nunca llega a efectuarse y puede ser por la sencilla razón de que no le hemos indicado a nuestro sistema operativo de que estamos navegando a través de un proxy (típico error: connect (101: Red inalcanzable)). Para efectuar satisfactoriamente dicha operación debemos hacer lo siguiente:
- Editar /etc/apt/apt.conf
   # sudo nano /etc/apt/apt.conf
- Adicionar la línea
   Acquire::::Proxy "http://usuario_proxy:passwd_proxy@ip.addr.of.proxy:puerto"
Otra vía para lograr conectarnos a internet sería creando una variable de entorno:
   # export http_proxy="http://usuario_proxy:passwd_proxy@ip.addr.of.proxy:puerto"

Listar los recursos compartidos que tiene una PC Windows

Puede suceder que en algún momento te compartan un recurso de red desde una pc con Windows, y sin embargo no sepas el nombre del mismo para poderte conectar, por lo que con este comando podrás listar todos los recursos compartidos que tiene.
   # smbclient -U nombre_usuario -L ip.addr.of.pc

Montar un recurso compartido de Windows automáticamente al iniciar el sistema

Para ello hacemos lo siguiente:
- Creamos el punto de montaje
   # sudo mkdir /mnt/red
- Editamos el fstab con privilegios de administración
   # sudo nano /etc/fstab
- y añadimos la entrada
   \\ip.addr.of.pc\nombre_recurso /mnt/red smbfs user,username=nombre_usuario,password=passwd_usuario,noauto

Nota: Recuerde siempre dejar una línea en blanco al final del fstab.

Cambiar password del dominio desde Linux

En ocasiones necesitamos cambiar la contraseña del usuario de un dominio y nos dirigimos a una PC con Windows para hacerlo, cuando perfectamente podemos realizarlo desde la consola de Linux de la forma siguiente:
   # smbpasswd -r dominio.com -U nombre_usuario

Un blog de tips de Linux

A veces, se hace necesario conocer pequeños trucos de Linux, que aunque parezcan muy sencillos son en muchos casos la solución a un gran problema.
Sírvanse de algunos que he ido recuperando en mis años de andanzas por este gran sistema operativo.