Temas relacionados con GNU/Linux y en especial con Ubuntu Hablemos de Apple, Hablemos de Mac y su sistemas MacOS y iOS Hablemos de Gadgets. todo es mundo de nuevas tecnologías que alguna vez soñamos... Busca en Google V E N E Z U E L A

Ubuntu

GNU/Linux Ubuntu

Como instalar OpenOffice en Oracle Linux 5

Hola Amigos!

Como de costumbre, y pretendiendo ayudar a unos amigos, quienes me pidieron en un momento que los ayudara haciendo una instalación de OpenOffice sobre su Oracle Linux 5, acá les dejo un HOWTO o paso a paso de como lo instalé, esto espero sirva de algo a alguien en lo particular y como todos mis escritos, me servirá para recordar en caso de tener que hacerlo nuevamente.

Manos a la obra!…

Prerequisitos:

Se cuenta con un servidor con:

lsb_release -a
LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: EnterpriseEnterpriseServer
Description: Enterprise Linux Enterprise Linux Server release 5.8 (Carthage)
Release: 5.8
Codename: Carthage

uname -a
Linux srvorabpm.MISAMIGOS.com 2.6.32-300.25.1.el5uek #1 SMP Tue May 15 19:55:50 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

Inmediatamente me logee en el sistema con el usuario root desde la terminal via SSH, por ejemplo:

ssh root@192.168.30.68

Estando logueado descargue con el comando wget el archivo del OpenOffice, a fin de evitar cualquier inconveniente con que en el equipo este o no instalado el JRE de Java, aproveche y me descargue el que ya lo tiene incluido. el comando fue:

wget http://download.services.openoffice.org/files/localized/en-GB/3.3.0/OOo_3.3.0_Linux_x86-64_install-rpm-wJRE_en-GB.tar.gz

Esto tardo un rato (depende del ancho de banda donde esta conectado el servidor) una vez terminado, procedí al proceso de instalación. Entiendo que para mis amigos, el OpenOffice será usado en dicha plataforma a fin de proceder a la generación y conversión de documentos, en tal sentido el mismo será usado mas como un Servicio que como una Aplicación de Usuario. (Te recuerdo que un servicio o daemon (disk and execution monitor) es una aplicación que corre en segundo plano o sin intervención directa del usuario)

Estando lista la descarga se proceder a extraer todo el contenido del paquete descargado, para ello ejecutamos:

tar xvzf OOo_3.3.0_Linux_x86-64_install-rpm-wJRE_en-GB.tar.gz

Con esto y considerando que estábamos ubicados en el “home” del usuario root (/root) entonces procederemos a la instalación propiamente, al descomprimir el paquete se debe haber generado dentro de /root una carpeta nueva con el nombre de OOO330_m20_native_packed-1_en-GB.9567 en consecuencia procedemos a acceder a la misma y dentro de esta a una con el nombre de RPMS, una vez en ese directorio, se procede a la instalación de todos los archivos RPM que en este se encuentren. Lo hago de este modo, ya que en este equipo si estaba instalado ya el JRE de JAVA, y al intentar instalar por medio del script setup, el mismo arrojaba como error que la el JAVA estaba instalado. Sin embargo no remplacé el JAVA debido a que el JAVA previamente instalado, es la versión certificada para los productos que posteriormente será allí instalados.

De esta manera ejecuté:

cd /root/OOO330_m20_native_packed-1_en-GB.9567/RPMS
rpm -ihv *.rpm

Cuando el proceso termina, se  habrán creado par de carpetas en el directorio /opt las mismas contienen el OpenOffice, sin embargo a fin de que pueda ser invocado desde cualquier parte de la jerarquia de archivos cualquiera de los componentes del OpenOffice, procedí a incluir en la variabla de entrono $PATH la ruta de los binarios del open office, para ello edité /etc/profile e inclui la linea como aparece a continuación:

cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

PATH=$PATH:/opt/openoffice.org3/program
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}

# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then
EUID=`id -u`
UID=`id -ru`
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

if [ -x /usr/bin/id ]; then
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi

HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi

for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. $i
else
. $i >/dev/null 2>&1
fi
fi
done

unset i
unset pathmunge

Ya terminada esta parte de la instalación, me resta nada mas proceder a probar si todo funciona, por lo que me desconecto de la terminal SSH y procedo a conectarme nuevamente, en esta oportunidad incluyo en la conexion SSH la opción “-X” la cual permite que haga un “forward” de la X-Window hacia mi servidor X. En palabras simples, con la -X hare que todo lo que requiera en mi sesión remota que se ejecute en una interfaz grafica, se redirija a través del túnel SSH hasta mi equipo y despliegue las ventanas gráficas en mi computador (NOTA: Esto solo funciona si tienes Linux de forma nativa o MacOS X con las extensiones de X-Window pre instalado. En caso de usar Windows revisa el proyecto http://sourceforge.net/projects/xming/)

Luego de haberme re-conectado, procedí entonces a ejecutar el soffice, abriendose la ventana del producto, y terminando su respectivo registro.

Listo! si todo ha salido bien, entonces ya tienes OpenOffice instalado en tu Oracle Linux 5.

Ubuntu, Canaima y Yo!

Ayer tuve la oportunidad de participar en un evento al cual fui invitado cordialmente, luego al culminar el mismo, a mi esposa gentilmente le regalaron un CD de GNU/Linux CANAIMA 3.0. Para todos es bien sabido mi desinterés por dicha distribución de Linux, especialmente porque en los intentos de conocerla, siempre saltó por allí algún personaje “Sobrado” menospreciando a Ubuntu, que a fin de cuentas es lo que considero mi Distro por excelencia, pues lo he usado desde su primera versión hasta la fecha.

Sin embargo, en la noche de hoy, revisando el Planeta Ubuntu-ve, me he topado con un Post de Efrain Valles, el cual me hizo pensar, reflexionar y hasta emocionarme, pues definitivamente concuerdo con muchas de sus opiniones (por no decir que con todas), motivo por el cual recordé cuando alguna vez en la vida, ese Maracucho vino a Caracas a conocer a este su servidor, un simple ciudadano que usaba y hacia Advocacy sin interés  de ser una estrella ni nada por el estilo, simplemente invitaba a todos a participar en Ubuntu como una alternativa viable para todos. Entendí, a sabiendas de que luego el perdiera ese  ”Respeto” que podía sentir por mi labor, y que en su momento fui de alguna forma, inspiración para su participación. Pues hoy siento que es él quien me sirve de inspiración para participar en el proyecto Canaima, debo confesar que no pretendo hacer aportes en desarrollo, pues eso ya lo he dejado y no pretendo tomarlo nuevamente (mi salud ya no lo permite) pero si pretendo hacer mi mayor esfuerzo en pro de ayudar con CANAIMA en las áreas que pueda.

Es así como no puedo dejar pasar esta ocasión para en primer lugar agradecer a Efrain por ese ejemplo que nos da a todos y en segundo lugar para hacer publica mi intensión de buscar como puedo ayudar con CANAIMA y en consecuencia con VENEZUELA.

Saludos Fraternos Ubunteros!

Ubuntu 12.04 LTS

Ubuntu 12.04

Ubuntu 12.04

Saludos, como de costumbre, he tenido el gusto de seguir todo el proceso de desarrollo y pruebas de Ubuntu 12.04 LTS. el cual sin lugar a dudas, demuestra ser nuevamente todo un éxito de la comunidad UBUNTU. Un sistema operativo muy estable, que se ha instalado en mis equipos sin  mayor inconveniente, encontrando y activando desde su instalación todo el hardware, inclusive activando los módulos de mis tarjetas de video y  wireless de forma que todo funcione a cabalidad.

Paticularmete, lo he instalado en mi MacBook y debo confesar que funciona mucho mejor que con MacOS X (Lion), y aunque aun hay detalles mínimos en Ubuntu, se siente la diferencia en el funcionamiento del equipo. navegando, descargando archivos y copiando datos de un disco a otro, Ubuntu ha demostrado su supremacía en velocidad y estabilidad.

Como muchos saben, soy usuario Mac y Ubuntu. por ello tengo un equipo con cada sistema, y verdaderamente que la experiencia para los usuarios finales, que escapan de Windows, en Ubuntu, está muy cerca de superar al MacOS X. Pues la facilidad e interacción con el usuario NO EXPERTO DE LAS TECNOLOGIAS, cada vez es mejor.

Espero que pronto el proyecto UNITY siga avanzando y mejorando, porque de ser así. Ubuntu será el lider por al menos unos 10 años más, ya con el

HUD (Head-Up Display), que anunciase  través de su blog, Mark Shuttleworth proyecto que intenta reemplazar los menús clásicos en las aplicaciones de Ubuntu por una interfaz estilo cuadro de búsqueda inteligente, que nos permitirá ejecutar todas las acciones disponibles en el menú de la aplicación que estemos usando en ese momento e invocar diferentes acciones de diferentes aplicaciones y del mismo sistema.

He aquí algunas de las características mas importantes que encontraremos en Ubuntu 12.04 LTS Precise Pangolin:

  • Inclusión de HUD de forma predeterminada
  • Soporte Multimonitores para Unity y LightDM
  • Un nuevo lente de Inicio para Unity
  • Un nuevo lente de Unity para videos tanto locales como en linea
  • Un nuevo modo ‘Presionar para mostrar’ el lanzador de Unity
  • NotifyOSD ahora utiliza los mismo colores y transparencias que el Dash de Unity
  • Y muchos cambios más.

Referencias desde:http://www.ubuntu.comhttp://emslinux.com y http://omgubuntu.co.uk

Permisos de Archivos en Linux

Hace pocos días, una amiga me preguntó acerca de como funcionaba eso de los permisos de los archivos en Linux, por ello le pasé el Link de la mejor y más fácil información que encontré a través de GUIA UBUNTU, pero al escuchar de parte de ella que se le hacia más rápido encontrar mi página (debe ser que la tiene en favoritos) entonces procedí a publicarla acá.

El Enlace original de tan extraordinaria labor es http://www.guia-ubuntu.org/index.php?title=Sistema_de_ficheros Donde podrán ver el articulo original.

Permisos

El sistema de permisos de Linux es simple y efectivo. Existen tres tipos de permisos:

  • Ejecución: Si es para un archivo será ejecutable y si es para un directorio significa que podemos pasar por él. Es representado por una X.
  • Lectura: Si es para un archivo significa que podemos leerlo y si es un directorio es que podemos leerlo también. Es representado por una R.
  • Escritura: Si es para un archivo será que podemos escribir en él y si es para un directorio significa que podemos crear ficheros dentro de él. Es representado por una W

También existen tres tipos de roles sobre los que se aplican estos permisos. Un archivo pertenece a un usuario y a un grupo:

  • Usuario: El propietario del archivo.
  • Grupo: Grupo al que pertenece el archivo.
  • Otros: Los demás usuarios.

Veamos un ejemplo:

$ ls -l pg_backup.sh
-rwxr-x---  1  pepito usuarios  453  2005-02-17  09:35  pg_backup.sh

El archivo pg_backup.sh pertenece al usuario pepito y al grupo usuarios. Los permisos que tiene para el usuario son rwx lo que significa que el usuario pepito puede leer el archivo, escribir en él y ejecutarlo. Por la extensión vemos que es un script, por lo que es normal que se pueda ejecutar. Para el grupo tiene los permisos r-x. Eso significa que los miembros del grupo usuarios pueden leer el archivo y ejecutarlo, pero no modificarlo. Los permisos para los demás usuarios (otros) son , por lo que un usuario que no sea pepito ni pertenezca al grupo usuarios no podrá leer, escribir ni ejecutar el archivo.

Cambio de permisos
Interfaz gráfica

Podrás cambiar los permisos de forma gráfica; sólo tienes que darle con el botón derecho del ratón sobre el directorio o el archivo al que quieras cambiar el permiso y seleccionar la pestaña permisos.

Opciones gráficas de permisos
Consola

El comando chmod se usa para designar los permisos de un archivo. Sólo el dueño del archivo y el root pueden cambiar los permisos. La sintaxis de chmod es:

chmod {a, u, g, o} {+, -} {r, w, x} nombre del archivo

donde:

u: corresponde al dueño del archivo
g: corresponde al grupo
o o a: corresponde al resto de los usuarios, a para todos (all) y o para otros (others)

Para autorizar o desautorizar el permiso:

+: autoriza
-: desautoriza
=: resetea los permisos

Los tipos de permisos son:

r: lectura
w: escritura
x: ejecución

El comando chmod también acepta otros valores para cambiar los permisos. Es probable que hayas visto algo como:

sudo chmod 751 [nombre del archivo]

Es otro modo de gestionar los permisos; de forma binaria. El sistema es muy simple y cómodo: se considera un bit para lectura (r) otro para escritura (w) y otro para ejecución (x). Las combinaciones posibles son ocho y se muestran en la tabla siguiente:

Octal r w x
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1

Un uno equivale a activar y un cero a desactivar los permisos. El equivalente octal de los permisos se aplica en orden: dueño, grupo y cualquiera (u,g,a). Entonces en el ejemplo anterior el valor 751 actúa:

  1. Cediendo todos los permisos al dueño.
  2. Cediendo permiso de lectura y ejecución al grupo.
  3. Cediendo permiso de ejecución a cualquiera.
Cambio de propietario/grupo
Interfaz gráfica

De forma gráfica solamente podrás cambiar el grupo al que pertenece un archivo. Para hacerlo tienes que darle con el botón derecho del ratón sobre el directorio o el archivo al que quieras cambiar el grupo y seleccionar la pestaña permisos.

Opciones gráficas de permisos

Para poder cambiar también el usuario al que pertenece el archivo deberá usar la consola. Mira más abajo para saber como hacerlo.

Consola

El cambio de propietario se hace empleando el comando chown :

chown (propietario):(grupo) (archivo)

Pondremos un ejemplo, supongamos que el usuario gaccardo desea darle una copia del archivo test.sxw al usuario pigu, el usuario pigu debe ser propietario de su copia para poder modificarla. Para esto debe cambiar el propietario y el grupo utilizando el comando chown.

Haciendo “ls -l” nos encontramos con un fichero asi:

-rwx-rw-r-- gaccardo gaccardo 435 sep 4 11:38 test.sxw

Por lo que en este caso el usuario gaccardo (actual propietario) deberá hacer :

[gaccardo@servidor priv]chown pigu:pigu test.sxw

Si vuelve a hacer “ls -l” encuentra que ha cambiado el actual propietario

-rwx-rw-r-- pigu pigu 435 sep 4 11:38 test.sxw
Ver también
Artículo en vídeo

Aquí puedes ver lo explicado en formato vídeo.

TIPS de Seguridad: Complejidad de las Claves o Contraseñas

TIPS de Seguridad para mitigar el riesgo de ser víctima de un Hacking a tus cuentas de correo y redes sociales:

Hoy día, los algoritmos para descifrar contraseñas son cada vez más efectivos y rápidos, aún más al considerar la potencia de los computadores y su incremento exponencial determinado por la Ley de Moore hacen que cada vez la seguridad sea mas insegura.

Para solventar esto, y mitigar el riesgo de ser víctimas de que nos descifren nuestras claves, entonces debemos incrementar la longitud y complejidad de las claves usadas.
El tiempo necesario para descifrar una contraseña se basa en la siguiente formula:

Dónde:

  • Número de posibles caracteres: Es el número de dígitos o caracteres que nos permite introducir. Algunos servicios sólo permiten letras, esto nos daría 26 caracteres en minúsculas y 26 caracteres en mayúsculas, si le agregamos números, entonces se aumenta 10 caracteres, si el sitio permite símbolos estaríamos hablando de más o menos 30 caracteres imprimibles más. Lo cual arroja un resultado aproximado de 92 caracteres en total.
  • Longitud de la contraseña: El tamaño de la clave o contraseña que se quiere descifrar. Ejemplo “pato” es una contraseña con 4 caracteres de longitud.
  • Cálculos por Segundo: Es el número de contraseñas aproximado que una computadora común puede procesar en un segundo. En nuestro ejemplo sería 10,000,000 de operaciones por segundo.

 

Aplicando lo antes expuesto, entonces podemos determinar que una clave como la palabras “SEGURO” puede ser descifrada aproximadamente en unos 30 Segundo, mientras otra como “miCl4v3es@segur4″ se toma unos 193 Trillones de Años.

 

 

Para lograr obtener una clave segura, una de las reglas fundamentales es elegir una buena contraseña y estas se basan en su longitud y en la variedad de los caracteres que la componen, cuanto mayor sea su tamaño y más heterogéneos los elementos que la integran, más difícil será que la descifre un eventual atacante.

Una buena práctica consiste en crear claves de al menos 12 caracteres de longitud, compuesta por letras, dígitos y símbolos especiales.

Para tener en cuenta…
Hay muchos usuarios que optan por utilizar la misma contraseña para varias de sus aplicaciones y servicios, evitando así tener que recordar varias contraseñas diferentes, sin embargo esto aumenta el riesgo de que un atacante robe su identidad digital empleando diversos métodos.

Es imprescindible determinar la importancia de las cuentas a proteger. Las contraseñas de acceso al equipos, al correo, a la banca electrónica y a cualquier aplicación que contenga información confidencial, deben ser únicas para cada servicio, de mayor complejidad y deben sustituirse periódicamente.

1.- Cómo proteger tus cuentas:  Es importante mantener en secreto tus datos de cuenta. Nadie, excepto tú debería saber tu contraseña y/o respuesta secreta; ni tu hermano, ni tu mejor amigo.

Mis humildes sugerencias

Cambia tu contraseña regularmente
.

Evita usar la misma contraseña en otros sitios, tratando que sea diferente a la que utilizas en tu correo electrónico, twitter, facebook, gmail, google+, etc.

Utiliza combinaciones, es recomendable el uso de mayúsculas y minúsculas combinadas con números y signos de puntuación (en especial aquellos que son comunes en su ubicación en el teclado sin importar en que idioma) al momento de crear tu contraseña e intenta que no guarde relación con tu nombre, domicilio, gustos musicales o cualquier dato que pueda vincularse contigo. Te recomiendo el uso de oraciones completas y que sus palabras esten en varios idiomas, de esta forma para intentar descubrirla por ataques de fuerza bruta tardarían miles de años con un supuesto inmenso poder computacional

No abras correos anónimos, mucho menos si te pide alguna confirmación de cuenta en cualquier servicio electrónico, en ningún momento el Los Administradores de estos servicios te enviara un correo pidiendo que ingreses tus datos en ninguna pagina, o correos de confirmación en la cual este involucrada tu contraseña de ingreso. Esto no se usa a fin de evitar los ataques de Phishing.
Evita contraseñas como: “Dios”, “Amor”, “Sexo”, “Pasión”, “Rojo”,”1234567″, “password”, “P4ssw0rd”, “Clave”, “abc123″, “admin”, inclusive la combinación entre estas y/o números. En caso contrario entraras de lleno al no tan selecto grupo de usuarios con las claves mas fragiles y propensas a ser descubiertas.
Cuida tu Equipo: No instales aplicaciones descargas de la Internet de sitios que no sean de tu extrema confianza, evita el uso de software ilegal, si usas MacOS X, descarga aplicaciones de la AppStore, si usas Linux, instala aplicaciones sólo de repositorios de confianza y nada que haya podido ser modificado por algún desconocido.

Ahora bien, si realmente estás preocupado por si tu contraseña es segura o no, o si estás completamente seguro de que lo es, te invito a que visites entonces http://howsecureismypassword.net/

 

 

Instalando servico ‘M$-ClickOnce’ en Ubuntu + Apache2 (Instalaciones, Actualizaciones y Ejecución de Aplicaciones Windows via WEB)

Para una de las empresas con que laboro, se ha hecho necesario mejorar la forma en que despliegan sus aplicaciones Stand Alone que han sido desarrolladas en casa, para ello me han solicitado que establezca un servidor M$-IIS, a lo que me negué rotundamente (claro esta con la alternativa en la mano) y les propuse usar un Ubuntu Server 10.04.3 con Apache2.

Ellos no tuvieron objeción alguna, para lo que investigaron los desarrolladores, y entendieron que si se podía usar otro motor WEB distinto al IIS. Por lo que comenzaron a modificar sus aplicativos e instaladores a fin de que funcionaran correctamente.

A continuación, y como siempre, para que no se me olvide, dejo anotado que fue lo que hicimos…

En primer lugar procedimos a la instalación, común de un servicio Apache2 sobre el equipo Ubuntu. para ello como de costumbre:

sudo apt-get update && sudo apt-get install apache2

Luego de tener listo el apache, se crearon las carpetas dentro del directorio /var/www donde se colocarían los instaladores de cada aplicativo

sudo mkdir -p /var/www/MiAplicacion

y luego se definió un un archivo .htaccess al cual le colocaremos el contenido referente al aplicativo a instalar.

touch /var/www/MiAplicacion/.htaccess

Agregamos al archivo creado (.htaccess) el siguiente contenido: (Pudes hacerlo con vim, nano, o lo que mas te guste, yo uso vi, por eso lo hice asi:

sudo vi /var/www/MiAplicacion/.htaccess

Pulsa la tecla “i” y entraras en modo edición, escribe lo siguiente:

AddType application/x-ms-application application
AddType application/x-ms-manifest manifest
AddType application/octet-stream deploy
AddType application/x-msdownload dll

Una vez escrito todo, procedes pulsando la tecla <ESC> del teclado, puedes hacerlo par de veces, esto hará que el vi entre en modo comandos, para invocar los comandos de Guardar y Cerrar pulsaras, dospuntos:” y luego las letras wq y finalmente enter, recuerda que todo debe ser en minúsculas.

:wq

Entonce, tendras nuevamente el prompt del BASH (Interprete de Comandos), alli nos toca ahora tan solo incluir los respectivos MIME para que el APACHE interprete correctamente las extensiones a publicar, para ello procedemos editando el archivo /etc/apache2/mods-available/mime.conf

vi /etc/apache2/mods-available/mime.conf

Dentro de este archivo procederemos a colocar el siguiente contenido, de la misma forma que lo hicimos antes:

## MIME incluido para que funcione el Apache como IIS en el Clickonce
 AddType application/x-ms-application                   .application
 AddType application/x-ms-manifest                      .manifest
 AddType application/octet-stream                       .deploy
 AddType application/octet-stream                       .msu
 AddType application/octet-stream                       .msp

###

Habiendo hecho todo esto, tan sólo nos toca reiniciar el servicio de Apache2 y pedirle a nuestros desarrolladores que coloquen los instaladores que generan ellos con el Visual Studio en el directorio /var/www/MiAplicacion   y  Listo.

De ahora en adelante, instalar, actualizar y ejecutar la aplicación será mucho mas fácil y rápido para aquellos que aun dependen de ello. (Espero que pronto se vaya todo a Web)

Cómo crear imágenes de disco VMware en Ubuntu con qemu?

Con frecuencia, estoy aprovisionando nuevos equipos virtuales, y normalmente luego de hacerlo, el usuario funcional, recuerda que no me explicó que allí, además de los servicios se almacenarían cierta cantidad de archivos, que sobrepasan el espacio originalmente considerado en el FileSystem.

En consecuencia, me toca colocarle mas disco, lo que mas me molesta de esto, es que siempre olvido el comando para crear el disco, en consecuencia procederé a documentarlo acá. Así si se me olvida, siempre tendré un sitio conocido donde recordarlo.

El comando para crear discos en qemu es el qemu-img, este  se le deben pasar los parámetros que permitirán indicarle que tipo y características tendrá la imagen de disco a crear.  El siguiente ejemplo, muestra como crear un disco de 10Gb tipo vmdk

# qemu-img create -f vmdk mynewdisk.vmdk 10G

Esta unidades .vmdk que crea el qemu, si mal no recuerdo haber leído, son versión 3, muchos me preguntan que porque uso .vmdk si ese es el formato nativo de VMware. Resulta que estas imágenes .vmdk pueden ser usadas tanto en por qemu como por VirtualBox y logicamente por VMWare (workstation y/o ESXi) lo que me permite en caso de tener que ante un desastre, restaurar el servicio, hacerlo mucho mas rápido, pues la portabilidad permite ofrecer rápidas respuestas y soluciones.

 

Como configurar un servidor Web que atienda por nombre del URL (Ubuntu+Apache2+VirtualHost)

Saludos amig@s todos,

Hace unos dias atras, un buen amigo y colega me pedió ayuda para entender como hacer un Name Virtual Host con el Apache2 en su servidor Ubuntu. Por lo que al igual que en otras oportunidades he preferido hace una breve explicación de como al menos lo hago y lo entiendo yo. Así pues acá dejo una breve explicación. NO es un HOWTO es simplemente como he entendido.

NOTA IMPORTANTE: Asumo que usted tiene instalado Apache2 en su servidor, de no ser así recuerde ejecutar en su consola: sudo apt-get install apache2

Es importante definir que es un Name Virtual Host, cuando accedemos a una pagina web, es decir cuando colocamos el URL o nombre del sitio en nuestro navegador, este luego de la resolución de nombre, procede a acceder al servidor WEB por el puerto que corresponda (normalmente 80 y 443). Lo importante del proceso es que nuestra maquina le envia como pregunta al servidor web, la URL o el nombre del sitio que esta buscando.

Este nombre lo ve el servicio de Apache2, y es gracias a esto que podemos definir que pagina servir al momento de que accedan.

Normalmente todo esto se configuraba antes en el archivo /etc/httpd/httpd.conf . En Ubuntu ahora eso ha cambiado, pues ahora el archivo de configuración es el /etc/apache2/apache.conf

Sin embargo, para evitar accidentes y la mitigar la probabilidad de dañar el archivo en cuestión, ahora tambien se crearon los directorios:

  • /etc/apache2/sites-available
  • /etc/apache2/sites-enabled

En el /etc/apache2/sites-available/ se encuentran los archivos de configuración para cada sitio que queramos hospedar, por defecto existe un archivo llamado default y su contenido suele ser:

	
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
           RewriteEngine on
           RewriteBase /
           RewriteCond 5[REQUEST-FILENAME] 1-f
           RewriteCond 5[REQUEST-FILENAME] 1-d
           RewriteRule 69.804 index.php/q=41 [L,QSA]
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All 
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Como podemos ver, el contenido del archivo es en sí una declaración de VirtualHost, que comienza indicando:

'<VirtualHost *:80>' = HostVirtual por todas las interfaces por el puerto 80
'DocumentRoot /var/www' = La raíz del los documentos de este sitio
'<Directory /var/www/>'= En el directorio tal se mostrará

Ok, entonces para esto sirve para que toda petición WEB que venga por el puerto 80 (HTTP) muestre el contenido del directorio /var/www

Para poder hacer entender al Apache2 que debe entregar otra página distinta a /var/www hacemos lo siguiente. Supongamos que vamos a hospedar una pagina web de un sitio llamado CONTOSO.ORG entonces lo primero que debemos hacer es crear nuestro directorio donde se colocarán los archivos de este sitio web. Para ello hacemos:

rolando@webserver: ˜$ sudo mkdir -p /var/www/contoso

rolando@webserver: ˜$ sudo touch /var/www/contoso/index.html

rolando@webserver: ˜$ sudo echo “HOLA MUNDO” > /var/www/contoso/index.html

Con esto hemos creado entonces un directorio en el cual colocar los archivos que queremos servir a el sitio contoso.

Ahora nos toca hacer que el Apache2 lo entienda cuando llamamos a un sitio con ese nombre y que entregue entonces la pagina que hemos creado.

Para ello lo primero que haremos es copiar el archivo default con el nombre de contoso para que no se nos olvide y sea mas facil identificarlo, para ello hacemos:

rolando@webserver: ˜$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/contoso

Luego editamos el contenido del mismo, para hacer las siguientes modificaciones:

"
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
     ServerName contoso.org
 ServerAlias www.contoso.org
        DocumentRoot /var/www/contoso

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/contoso/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
"

Una vez lista las modificaciones realizadas en negritas, debemos entender que aunque hayamos creado el archivo contoso dentro de /etc/apache2/sites-available/ este está disponible mas no está habilitado.

Entonces debemos habilitarlo, para ello tenemos que crear un enlace simbolico que apunte del directorio de disponibles (/etc/apache2/sites-available/) al directorio de sitios habilitados (/etc/apache2/sites-enabled/) para conseguir esto ejecutaremos:

rolando@webserver: ˜$ sudo ln -s /etc/apache2/sites-available/contoso /etc/apache2/sites-enabled/

Habiendo creado el enlace simbolico de este nuevo sitio, procedemos entonces a reiniciar el servicio de apache2 con:

rolando@webserver: ˜$ sudo /etc/init.d/apache2 restart

Si todo lo hemos hecho bien, entonces nuestro sitio web atenderá ademas de la pagina por defecto con los archivos de /var/www/ cuando le pregunten a este por contoso.org o por www.contoso.org entregará las paginas existente en /var/www/contoso

Espero que esta breve explicación, sirva como incentivo para seguir revisando, aprendiendo y entendiendo cada vez mas el funcionamiento del Apache Server en un Servidor de Ubuntu server.

Claro debe quedar que podemos tener tantos sitios virtuales como nuestro servidor soporte, y además que para que funcione todo bien, los servidores DNS deben estár resolviendo correctamente el sitio y apuntando a nuestro servidor Apache2.

Si no tienes control sobre tus DNS Servers, puedes probar temporalmente colocando las entradas en el archivo /etc/hosts

Cómo montar recurso compartido remoto de Windows en Linux

Como ya he escrito anteriormente, en GNU/Linux existe toda una jerarquía de archivos, que pretende organizar los archivos de nuestro sistema, recordemos tambien que para Linux existe tan sólo tres tipos de archivos, Los Especiales, Los Normales y Los de Directorio.

El montaje via SMB o CIFS, pretende conectar un recurso compartido por Windows como una carpeta (Archivo de Directorio) y poder acceder al mismo en una carpeta local dentro de nuestra jerarquia.

Utilizaré el comando mount para montar a distancia el recurso compartido de Windows en Linux de la siguiente manera:

Procedimiento para montar recurso compartido de Windows a en jerarquía Linux

1) Asegúrese de que tiene la siguiente información:
–> Windows nombre de usuario y contraseña para acceder a nombre del recurso compartido
–> NombreDeRecursoCompartido (por ejemplo, / / ??server / share) o la dirección IP
–> El nivel de raíz el acceso de Linux

2) Ingresar al equipo Linux como usuario root (o utilizar el comando su o sudo)

3) Crear el punto de montaje requerido:

# mkdir -p /ruta/donde_montar

4) Utilice el comando mount de la siguiente manera:

# mount -t cifs //windowsserver/recursocompartido -o username=nombreusuariowindows,password=PasswordUsuarioWin /ruta/donde_montar

Utilice el comando siguiente si usted está usando una versión antigua, como Red Hat Enterprise Linux <= 4 o Debian <= 3:

# mount -t smbfs -o username=nombreusuariowindows,password=PasswordUsuarioWin //windowsserver/recursocompartido /ruta/donde_montar

Donde,

  • -t smbfs: Tipo de archivo del sistema que se monte
  • -t cifs: Tipo de archivo del sistema que se monte (Nueva versión del smbfs)
  • -o: son las opciones pasadas al comando mount, en este ejemplo que había pasado dos opciones. El primer argumento es el nombre de usuario  (nombreusuariowindows) y el segundo argumento es una contraseña para conectarse.
  • //windowsserver/recursocompartido: Windows 2000/NT nombre del recurso compartido en Windows.
  • /ruta/donde_montar  punto de montaje (para compartir el acceso después del montaje)

Buscando entre archivos

En estos días, me preguntaron acerca de como hacer una busqueda de un contenido desde BASH, por lo que se me ocurrio escribir algo mas completo acerca del tema en mi Blog, sin embargo, me tome la libertad de googlear a ver si alguien ya lo había escrito, y encontré entonces lo que a continuación publico.

Aprendí de acá unos truquitos que espero les sirvan:

Autor: Guido Shocher, LinuxFocus
Traducido por Ruben Sotillo
Copyright pertenece al autor

Buscando ficheros por nombres

Probablemente puedes recordar este problema: Tenías algún tipo de fichero y no podías recordar donde lo pusiste.

Aquí es donde el comando find viene a ser útil. ¿Cómo usarlo? find viene, por supuesto, con un extenso man page pero veamos unos “casos típicos”: Buscar un archivo llamado lostfile.txt, recorriendo el árbol de directorios comenzando en el directorio actual:

find . -name lostfile.txt -print

find acepta también wildcards. Recuerda colocar entre comillas los wildcards, de lo contrario el shell no los reconocerá como tales. Aquí un ejemplo:

find . -name “lost*” -print

Este comando puede ser un poco lento cuando necesites buscar en un árbol de directorios muy grande. Aquí el comando locate puede ayudar. Este realmente no busca directamente un archivo en el sistema de ficheros. Busca en una base de datos. Es bastante más rápido pero la base de datos podría estar desactualizada. En algunas distribuciones la base de datos localizada es actualizada cada noche pero puedes, por supuesto, correr el comando updatedb manualmente de vez en cuando para actualizarla. locate realiza búsquedas de subcadenas.

locate lostfile

Este localiza los ficheros lostfile.txt o mylostfile.txt, etc…

Hasta ahora estabamos buscando ficheros de los cuales teníamos una remota idea de sus nombres. Tal vez el nombre del archivo no era lostfile.txt sino lastfile.txt o leastfile.txt o lostfile.txt o Lostfile.txt o lostfile.text y no puedes recordar exactamente el nombre. ¿Cómo podrías encontrar el archivo aún? en este caso podrías usar una utilidad para encontrar ficheros que tolera fallas en la escritura del nombre llamada ftff (fault tolerant file find). Esta utilidad busca el archivo y permite un número de “errores en la escritura”. Este comando encontraría los nombres mal escritos de los ficheros:

ftff lostfiles.txt

El número permitido de errores en la escritura del nombre depende del largo del mismo pero también puede establecerse con la opción -t. Para permitir un máximo de 2 errores y usar también un wildcard, sólo tipea:

ftff -t2 “lostfiles*”

ftff es un programa de mi autoria y forma parte de un paquete llamado whichman-1.4 que puede ser bajado de
sunsite.unc.edu/pub/ Linux/apps/doctools/whichman-1.4.tar.gz

Algunas veces te gustaría encontrar todos los ficheros en el árbol de directorios que no contengan cierta cadena. Por ejemplo todos los ficheros excepto .o y .c. Aquí están un par de posibilidades para hacerlo::

find . ! -name “*.o” ! -name “*.c” -print
find . -print | fgrep -v ‘.o’ | fgrep -v ‘.c’
si tienes la versión gnu de find: find | fgrep -v ‘.o’ | fgrep -v ‘.c’
find | egrep -v ‘.[oc]‘

Obteniendo una vista completa del sistema de ficheros

Algunas veces te agradaría tener una visión total del sistema de ficheros frente a ti. Por ejemplo: Tienes un nuevo CD y quisieras ver que es lo que tiene. Podrías usar solamente ls -R. Personalmente prefiero por fácil lectura uno de los siguientes: tree dibuja un diagrama de árbol (sunsite.unc.edu/pub/Linux/utils/file/ tree-1.2.tgz ).

tree
o con nombres largos de archivo: tree -fF

También está por supuesto, el viejo, pero buen find. La versión GNU de find, que viene usualmente con Linux, también tiene la posibilidad de cambiar el formato de impresión para imprimir, por ejemplo el tamaño del archivo con el nombre:

find . -ls
find . -print o con gnu find: find
find . -printf “%7s %pn”

Hay también un pequeño programa en perl usando el comando ls que hace cosas similares. Se puede bajar de aquí: lsperl. Puedes encontrar probablemente muchas más herramientas para ver ficheros pero ésta es, para la mayoría de los casos, suficiente.

Encontrando ficheros por contenido (buscando cadenas de texto en ficheros)

La utilidades standard para buscar cadenas de texto en ficheros son grep/egrep para la búsqueda de expresiones regulares y fgrep para buscar cadenas literales. Para buscar una expresión en todos los ficheros del directorio actual sólo tipea:

egrep -i “search expression” *

Para buscar cadenas en todos los ficheros de todo el árbol de directorios puedes combinar el comando find con otro comando de búsqueda de archivo, por ejemplo: egrep. Esto puede ser realizado de muchas formas:

egrep -i “expression” `find . -type f -print`
find . -type f -exec egrep -i “expression” /dev/null {} ;
find . -type f -print | xargs egrep -i “expression”

Si encuentras ésto díficil de recordar entonces puedes usar un pequeño shell script que puedes encontrar aquí grepfind Este script también se asegura que caracteres no imprimibles sean removidos en caso de que ejecutes egrep en un archivo binario.

Un programa de búsqueda muy interesante es agrep. Este funciona básicamente como egrep pero realiza búsquedas que toleran errores en la escritura del nombre. De esta manera puedes también encontrar palabras mal escritas. Para buscar una expresión con un máximo de dos errores de escritura puedes usar:

agrep -i -2 “search exprission” *

El programa agrep puede ser bajado de sunsite sunsite.unc.edu/pub/Linux/util s/text/agrep-2.04.tar.Z o de su sitio original ftp://ftp.cs.arizona.edu/agrep/

También está glimpse. Esta es una poderosa utilidad de búsqueda. Utiliza un concepto similar a locate. Primero una base de datos necesita ser construida, para que la búsquedas sean rápidas. Para construir una búsqueda indexada del contenido de todos los ficheros empezando en el directorio actual:

glimpseindex .

Después de eso puedes buscar una cadena en todos los ficheros que fueron previamente indexados

glimpse -i -2 “search exprission”

glimpse también tolera errores de escritura (como agrep) y el -2 permite dos errores. glimpse está disponible en http://glimpse.cs.arizona.edu/

@rolandoblanco