martes, 18 de noviembre de 2008

Compartir ficheros con samba

Samba es la mejor herramienta en derivados de UNIX para compartir recursos con otros equipos y también para acceder a los recursos que puedan tener compartidos. (También es la única que conozco, pero tampoco soy ningún gurú).

Comenzaremos por instalar el demonio samba con todas sus dependencias desde una terminal:
sudo aptitude install samba
Y después editar el archivo de configuración /etc/samba/smb.conf con cualquier editor de texto, yo usare nano:
sudo nano /etc/samba/smb.conf
Hay varias opciones que nos interesan. Yo indicare la forma de hacer funcionar el demonio sin demasiadas complicaciones. Las lineas precedidas de #(almohadillas) son comentarios. Las demás son opciones. Vamos a centrarnos en lo que son opciones, ignorando los comentarios.

Buscamos (Ctrl+W, desde nano) la línea que diga algo como :
workgroup = MSHOME
Debes cambiar MSHOME por el grupo de trabajo al que pertenecen las maquinas con quien quieras compartir recursos.

Busca ahora algo como guest account y ponlo de esta forma, (de no aparecer añade la opción):
; guest account = nobody (incluyendo el punto y coma inicial)
Después haz lo propio con la opción invalid users, y cambiala (o añadela), por:
invalid users = root
Ahora busca la linea que diga:
; security = user
Y la cambiamos por:
; security = share
También has de buscar (recordemos que es Ctrl+W desde el editor nano) usershare allow guests y ponerla de este modo:

usershare allow guests = yes
Ahora solo resta añadir, al final del fichero, los recursos que quieras compartir. Esta es la estructura que puedes seguir:
[Publico] -->Aquí puedes poner el nombre que quieras
path = /home/usuario/Publico/ --> ruta del directorio a compartir
avaliable = yes --> Disponibilidad/Visibilidad del recurso (si o no)
browsable = yes --> Permite navegar en los subdirectorios (si o no)
public = yes --> Acceso a cualquiera o solo a quien tenga cuenta en el equipo (si o no)
writable = yes --> Con derechos de escritura (si o no)
NOTA: Si pones la opción public = no deberás crear un usuario en la base de datos de samba para que ese usuario pueda acceder al recurso:
sudo smbpasswd -a usuario

NOTA2: Los permisos del sistema a la carpeta compartida deben permitir las opciones dadas en samba.
Para cambiar los permisos de sistema a una carpeta:
chmod 777 /home/usuario/Publico
Si no quieres que tengan permisos de escritura usa:
chmod 775 /home/usuario/Publico
Y cambia la opción writable del recurso compartido en el archivo de samba a no.

Cierra el editor nano (Ctrl+X), salvando los cambios y reinicia el demonio de samba:
sudo /etc/init.d/samba restart
Y tras esperar un rato (tarda un poco en refrescar todo) podrás ver tus carpetas compartidas desde los demás equipos.

Tan solo queda la posibilidad de que el recurso a compartir sea una carpeta dentro de otra partición o disco duro. En este caso no podrás cambiar los permisos, ya que son dados por el sistema al realizar el montaje de la partición.

Yo recomiendo usar /etc/fstab para programar las particiones que han de ser montadas en el inicio y con que permisos se han de montar.
sudo nano /etc/fstab
Pondré un ejemplo de partición montada en /etc/fstab y con los permisos necesarios para compartir con samba:
# /dev/sdb1
UUID=26BC0818BC07E0E3 /media/discoE ntfs defaults,umask=002,gid=46 0 1
La primera linea es un comentario para identificar a que partición hace referencia la linea siguiente, puede poner lo que quieras. La segunda linea es la importante;
El UUID (el identificador universal de la partición, Universal Unique IDentifier) de una partición lo puedes obtener con:
sudo vol_id -u /dev/sda3 (reemplaza a por el disco en cuestión -a,b,c,etc- y 3 por la partición que sea)
Después del UUID hay que poner la dirección a la carpeta vacia donde se debe montar la partición, y el sistema de archivos de la esta (ext4,ext3, vfat, ntfs...). La opción umask es la que nos interesa, en mi caso la puse en 002, es como chmod, pero a la inversa, osea va restando desde los números mas altos, que seria 777 (acceso total). 777 - 002 = 775. Así fstab monta la partición en la ruta dada con máximos derechos al dueño y grupo y al resto solo derechos de lectura y ejecución. Y ya puedes compartir la partición, o una carpeta dentro de esta, con el resto de la red. Si quieres que se pueda escribir desde la red el umask deberá ser 000.

Por ultimo tras modificar fstab habría que desmontar y volver a montar todo:

sudo umount -a
sudo mount -a
Y volver a reiniciar el demonio Samba:

sudo /etc/init.d/samba restart
Con todo esto ya podemos compartir archivos sabiendo que permisos son los que damos a cada recurso compartido.


jueves, 13 de noviembre de 2008

Virtualizacion con KVM

Hace poco, instalábamos Virtual Box OSE (Open Source Edition) para la virtualización de otros sistemas operativos. Hoy vamos a hacer lo propio pero usando el modulo KVM (Kernel Virtual Machine), el cual esta incluido en el kernel Linux desde su versión 2.6.20.

Tan solo necesita de un requisito y es que el procesador del equipo tenga soporte para la virtualización por hardware (los últimos procesadores de Intel y AMD ya incorporan esta característica, aunque no todos).

Si quieres confirmar que tu procesador cuenta con el soporte necesario para correr KVM, tipea en la consola esto:

Para procesadores Intel
grep vmx /proc/cpuinfo
Y para los AMD
grep svm /proc/cpuinfo

La salida debe ser similar a esta (en el caso de Intel):
usuario@host:~$ grep vmx /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

NOTA: De no aparecer el soporte de KVM (vmx o svm según la CPU) puede que este deshabilitado en la BIOS de tu equipo. Si en la BIOS no aparece la opción para activarlo puede que la placa/bios no lo soporte o sencillamente que tengas uno de los pocos procesadores sin las extensiones de virtualización por hardware. Si es tu caso, y aun así quieres virtualizar consulta el artículo anterior a este sobre la instalación y configuración de Virtual Box OSE.

Una vez realizadas la precauciones pertinentes, podemos proceder a instalar todos los paquetes necesarios.
sudo aptitude install kvm virt-manager qemulator
Para poder usar kvm necesitamos pertenecer a su grupo de usuarios o iniciarlo como root, así que añadimos nuestro usuario al grupo "kvm"
sudo adduser dukkon kvm --> Cambia dukkon por tu usuario del sistema

Solo resta reiniciar nuestra sesión (logout y login) y ya podemos probar a tipear en un terminal:

kvm
Si no devuelve ningún error y en su lugar aparece una lista de las opciones y parámetros de uso del KVM todo ha ido perfecto.

Ahora os diré como logré crear una maquina con winXP, por que la verdad no fue tan intuitivo como con VirtualBox, pero la fluidez y robustez con que trabaja KVM en comparación con VBox merece la pena.
Primero tuve que crear un archivo de imagen que utilizaría como hda (primer disco duro) con la orden:
qemu-img create nombre_del_disco_duro_virtual.img [tamaño en KB]
Por ejemplo:
qemu-img create WinXPKvm.img 5000000
Después tuve que crear la maquina virtual con qemulator (Aplicaciones-> Accesorios-> Qemulator), que no soporta KVM, pero es compatible.

NOTA
:Si en algun momento veis algo de Kqemu, tan solo es una capa de aceleración para qemu que además es inestable, no tiene nada que ver con kvm. Así pues lo ignoraré por completo y recomiendo hacer lo mismo...


Pulsad el botón con el símbolo "+ " para crear una nueva maquina virtual.



En la ventana que se abrirá, dá un nombre a la maquina y si quieres un icono para identificarla. En "system type" es aconsejable poner el tipo de arquitectura que tengamos funcionando actualmente, osea si tenemos una CPU de 64b y Ubuntu (u otro) de 64bits, es recomendable virtualizar también en 64bits. Reserva una cantidad de RAM para el equipo virtual, teniendo en cuenta el total de RAM disponible y la usada por tu sistema normalmente.
Después añade una imagen de CD para instalar el sistema virtual o un dispositivo real, si dispones del CD/DVD.
Ahora vamos a la pestaña de "Advanced":

Aquí solo hay poner como primer disco duro (hda) la imagen de disco que creamos antes con el comando qemu-img. Aceptamos y de nuevo en la ventana de Qemulator y con el nuevo equipo seleccionado, hacemos clic en "show settings".

Lo mas destacable aquí es en la pestaña "Hardware", donde puedes elegir una tarjeta de sonido a emular (a mi me funciono emulando la -ENSONIQ AudioPCI ES1370-); y en la pestaña "Network" donde puedes activar la opción -SMB Share-, para usar los recursos compartidos con Samba en el sistema invitado (Carpetas, impresoras, etc...).

Una vez todo configurado, clic en "Save" y, después, en el boton de arriba a la derecha con el icono de "reproducir".

Ejecutara la maquina virtual sobre la que podrás instalar el sistema operativo elegido anteriormente. Cuando termines de instalar el sistema, y si no necesitas requerir mas de ningún CD/DVD o imagen de estos, ya puedes usar kvm para "arrancar" la imagen del disco duro virtual con el nuevo sistema recién instalado dentro.
Prueba a crear un lanzador en tu escritorio o panel de Gnome con esta orden:
kvm "/ruta/del/disco/imagen/entrecomillada.img"
Una vez confirmado que funcione todo correctamente, podéis ir añadiendo opciones a la orden anterior. Tipeando en un terminal kvm salen todas las opciones disponibles pero yo os diré las mas comunes, al menos en mi caso:

-soundhw es1370 <-para cargar la emulación de la tarjeta de sonido.
-m 256 <- para asignar la cantidad de RAM reservada (por defecto se carga con 128Mb) -localtime <- Tuve que añadir esto, por que iniciaba la maquina virtual con la hora retrasada)
-cdrom "/ruta/de/la/imagen/entrecomillada.iso"
<- Puedes añadir esto para que use una imagen como CD/DVD virtual. Como decía antes, en mi caso el lanzador quedaría así:

kvm -m 256 -localtime -soundhw es1370 "/home/dukkon/WinXPKvm.img"

Notad que arriba en el nombre del visualizador aparece ahora QEMU/KVM, además de que se notara en la velocidad y fluidez de ambos sistemas (el anfitrión y el invitado).

Una cosa más, para quienes gustan de trabajar en pantalla completa; usad la combinación Ctrl+Alt+F para entrar y salir del modo "fullscreen".

lunes, 10 de noviembre de 2008

Crea maquinas virtuales con Virtual Box

Virtual Box OSE (Open Source Edition) nos permite crear maquinas virtuales donde poder instalar otros sistemas operativos. Dicho de otro modo podemos hacer funcionar un sistema basado en WindowsXP o OpenSolaris dentro de una ventana sin tener que salir de nuestro escritorio Gnome.

Con Ubuntu hace tiempo que esta incluido en los repositorios, (existe no obstante una opción mas poderosa,el modulo kvm, pero centremonos en el caso que nos ocupa) para instalarlo teclea:
sudo aptitude install virtualbox-ose
Adicionalmente necesitaras instalar un modulo para el kernel dependiendo de la versión del kernel que tengas instalada, para conocer tu versión del kernel tipea:
uname -r
Que en mi caso me devolvió esto:
2.6.27-11-generic
El modulo a instalar en mi caso seria: "virtualbox-ose-modules-2.6.24-19-generic", así pues en consola escribe:
sudo aptitude install virtualbox-ose-modules-2.6.27-11-generic (donde 2.6.24-19-generic correspondería a la versión del kernel que uses)

NOTA: En lugar de los pasos anteriores puedes tipear directamente esto:

sudo aptitude install virtualbox-ose-modules-uname -r

Ahora solo nos resta añadir nuestro usuario al grupo de virtual box (vboxusers) para poder usarlo como usuario:
sudo adduser dukkon vboxusers --> Cambia dukkon por tu usuario del sistema

Ahora ya puedes iniciar Virtual Box OSE desde el menú Aplicaciones->Herramientas del sistema.


En Archivos->Preferencias podéis cambiar la ruta donde se guardaran los "discos duros virtuales" de las "maquinas virtuales" que creéis. (Un poco lioso, ya se...).
También puedes cambiar la tecla "Host", tecla que habrás de pulsar para que la ventana del sistema invitado (el virtual) deje de retener el ratón en "su ventana". (Si, esto también es un lío jeje).

A la hora de crear una nueva maquina virtual, pulsad el botón de "Nueva", y continuar los pasos sugeridos, completando el nombre de la maquina virtual, el sistema que vamos a instalar en ella, la memoria RAM y la cantidad de disco duro que reservaremos para esta.

domingo, 9 de noviembre de 2008

Trabajando con imágenes de CD o DVD

En Linux disponemos de una gran aplicación para montar distintos tipos de imagen de cd (.nrg, .ccd, .iso, etc). Se trata de AcetoneISO:


Además de montar varias imágenes y de distintos tipos también hace otras cosas:
  • Dividir/unir imágenes de disco en partes
  • Comprimir/descomprimir imágenes (7zip)
  • Encriptar/desencriptar imágenes
  • Convierte desde otros tipos de imagen a ISO(MacOS, bin, mdf, img, cdi, nrg, etc...)
  • Extraer contenidos de imágenes de CD/DVD
  • Genera archivos de imagen desde un CD/DVD o un directorio
  • Ripea CD de PSX1 para emulador epsxe
  • Extrae Audio-CD
  • Descarga vídeos de youtube
  • Convierte DVD-Vídeo, Flv y otros formatos a AVI(xvid)
  • Reproduce DVD-Vídeo
Para conseguir este fabuloso programa tan solo tienes que descargarlo en formato .deb desde la web de getdeb.net:
http://www.getdeb.net/app/AcetoneISO
Descarga al versión correspondiente a tu arquitectura (en mi caso la Intrepid 64 Bits). Tras completar la descarga instala el paquete deb haciendo doble clic en él. Ya lo tienes instalado, pero ahora hay que hacer unas modificaciones para que te deje montar archivos de imagen como usuario.

AcetoneISO usa el modulo fuseiso para montar. Tu usuario debe añadirse al grupo fuse. Dependiendo del paquete que instales, esto puede hacerse de forma automática durante la instalación, pero yo tuve que hacerlo manualmente..

Abre un terminal y escribe:

sudo modprobe fuse
sudo chmod 4755 /bin/fusermount
-->podria ser /usr/bin/fusermount dependiendo de la distribución usada
sudo chmod o+rw /dev/fuse
sudo addgroup [tu-usuario] fuse
--> Por ej: addgroup dukkon fuse
Después de eso, y creo que por usar Gnome, tuve que hacer algún cambio mas para que todo funcionase al 100%. Inicia el AcetoneISO desde el menú de Aplicaciones->Sonido y vídeo->AcetoneISO y ve a File->Options

En Iso from folder elegí User Settings.
En Media player elegí VLC.
Y en File manager, Nautilus.

Tras todo esto ya podía montar imágenes haciendo clic directamente al botón de montar, además me genera un directorio (~/virtual-drives/) con capacidad para montar varias imágenes al mismo tiempo.

Control remoto de linux

Gracias al software de BluePad podemos controlar remotamente nuestro escritorio desde un móvil a través de bluetooth.

Debemos tener un receptor bluetooth instalado y autorizar el dispositivo (tfno. móvil) que vayamos a usar. (puede que debas instalar antes el paquete bluez-utils: sudo apt-get install bluez-utils)

Abre las propiedades del dispositivo bluetooth.
bluetooth-properties
En la segunda pestaña activa (si no lo esta ya) la opción "Input Service":



Ahora abre con un editor plano el fichero de configuración de bluetooth:
sudo nano /etc/default/bluetooth
Cambia la linea que dice:

HIDD_ENABLED=0

por:
HIDD_ENABLED=1
Sal y guarda el archivo (Ctrl+X). Después reinicia el servicio:
sudo /etc/init.d/bluetooth restart
Ahora abre la web de BluePad:
http://www.valeriovalerio.org/bluepad
Ve a la sección de "Downloads" y descarga el paquete Debian (el primero de todos) y el software java para el teléfono móvil. Instala el paquete deb usando un doble clic.

Ahora descomprime el .tar.gz con el cliente java para el móvil:



Como ves se incluyen dos versiones del cliente que funcionan con según que móviles. Hay una lista de compatibilidades aqui. Dentro de cada carpeta hay un archivo .jar que es el que hay que enviar al teléfono por bluetooth para que se instale la aplicación cliente.

Una vez todo instalado ejecuta mediante Alt+F2 (o SUPER+ESPACIO si usas Gnome-Do) "bluepad" sin las comillas, y aparecerá el icono en la bandeja de sistema (system tray).

NOTA: (Gnome) Para que Bluepad se ejecute siempre al inicio de sesión añadelo en Sistema->Preferencias->Sesiones

Ahora haz clic derecho en el icono de bluepad y elige la opción de conectar, busca tu móvil y conéctate. Después desde tu móvil inicia el cliente y conéctate al pc. Recuerda primero conectas desde el PC y después desde el Teléfono.

A estas alturas ya debes andar controlando el ratón con el móvil ;)

viernes, 7 de noviembre de 2008

Y si linux fuese un estandar....


Se trata de un relato imaginado, en una hipotética situación en la que Linux fuese el sistema dominante del "mercado" y Windows un total desconocido. Es decir, casi la situación actual, pero al revés. Nota: Este relato no es originalmente mio.

*MIS PRIMEROS PASOS CON WINDOWS XP*

He oído acerca de un nuevo Sistema Operativo llamado Microsoft Windows el otro día y quería probarlo porque dicen que es fácil de usar y que es intuitivo. Desafortunadamente el autor no ofrece ningún live-cd para probar todo antes de instalarlo. En vez de descargarlo de Internet, como siempre hago, he tenido que ir a la tienda de ordenadores y comprar uno por el precio de 150€. También hay una llamada "Professional Edition" pero costaría incluso mas. Lo primero que hice cuando llegué a casa fue abrir la caja, poner el cd que traía en mi lector de DVD y encender el PC. La pantalla de instalación consistía en un simple fondo azul y un menú fácil de usar. Quise respaldar mis datos primero así que intenté abrir una consola virtual pero lo normal de CTRL-ALT-F1 no funcionó (¿Que diablos?). Tuve que reiniciar, hacer una copia y reiniciar la instalación de nuevo. El menú daba la opción "Instalar Windows XP" y la seleccioné. Entonces hubo un extraño mensaje que decía: "Acuerdo de Usuario Final" y tuve que aceptarlo para continuar. No había oído nunca de algo como esto en Linux así que leí la mayor parte del largo texto: No me está permitido distribuir este producto y no haré copias a mis amigos. Era de cualquier forma el extremo opuesto de otra licencia de la que había oído que se llama Gnu GPL. Después de aceptarla con F8 la instalación continuó. Windows no reconoció que tenía particiones ext3 y reiserfs en mi sistema y me dijo que había encontrado un "sistema de archivos desconocido". Siempre había pensado que eran estándares pero puede que estuviese equivocado. Había una opción de borrar todo el disco duro e instalar WinXP y la elegí. La próxima cosa curiosa fue que Windows no crea una partición separada para mis preciados datos y solo crea una gran partición del sistema. "Puede que Windows tenga un sistema de archivos de alta seguridad que haga backups automáticos en caso de perdida de datos" pensé. Como yo tenía un disco relativamente grande no pude seleccionar Fat32 y tuve que optar por NTFS. Tardó un rato formatear el disco.

Desafortunadamente no pude seleccionar paquetes de una lista como siempre hago en Linux, Windows seleccionó todo el solo. Los únicos ajustes que pude hacer fue introducir la fecha del sistema correcta, mi usuario y algo llamado clave de registro. Esta era un numero de 25 dígitos que tuve que introducir manualmente antes de que la instalación continuase. Después de otro reinicio Windows estaba finalmente listo y funcionando, o casi. Windows quería activarse primero. Durante este proceso Microsoft intenta acceder a una web y verificar los datos de registro. ¡Ni de coña! Lo cancelé y Windows me dijo que tenía un periodo de prueba de 30 días después del cual tendría que registrarme. ¡Vaya mierda!

La nueva interfaz de usuario apareció y empecé a olvidar todas las dificultades iniciales. Era un poco raro que no hubiese una pantalla para poder iniciar sesión con el usuario por defecto para el trabajo diario. Por el momento estaba en modo administrador y tenia acceso de root. Eso me hizo sentir incómodo porque mi hermana pequeña tendría los mismos privilegios en ese sistema. Tampoco había opción para ajustar los permisos de los archivos (algo como chmod) manualmente y esto podría ser otro riesgo para una estación de trabajo. Busqué el material de la documentación del sistema para empezar a ajustar mi nuevo sistema como quería pero no pude encontrar nada útil (F1 realmente no ayuda). De repente, un horrible pop-up amarillo apareció en la esquina derecha al fondo de la pantalla. Decía algo como "Nuevo dispositivo encontrado." Una ventana en el medio de la pantalla me dijo que tenía que insertar el CD del controlador del dispositivo y pulsar en "Continuar". Al principio no sabía lo que era pero de repente me di cuenta de que un controlador de dispositivo era algo como un modulo. Me acuerdo que venía un CD con mi impresora y lo encontré en una caja en el ático. Pulsé en "Continuar". Mi nuevo sistema me advirtió que el controlador del dispositivo no había pasado el test de compatibilidad de hardware y que debería probar otro controlador. Estaba un poco asustado de darle a "Continuar" pero finalmente me decidí a hacerlo y todo fue perfectamente. Estaba un poco irritado porque el estúpido mensaje me cabreó pero no tenía tiempo para quejarme. Después de eso instalé todo el hardware y estaba preparado para navegar.

No había cortafuegos ni anti-virus instalado y me sentí un poco inseguro cuando entré por primera vez en la web. Estuve navegando durante dos minutos mas o menos antes de que recibiese un mensaje de "Al Dick" que me ofrecía una ración durante seis años de Viagra. Dejando a un lado que no necesito ese tipo de cosas (¡de verdad!) era increíblemente cabreante. Encontré un how-to en la red para desactivar esos mensajes. El Internet Explorer no tiene filtro de popups y parece atraer publicidad y después de quince minutos mi barra de tareas parecía un campo de batalla de spam. Tuve que cerrar todas las ventanas manualmente. Mi antiguo navegador Firefox traía posibilidad de pestañas incluida pero parece ser que IE tiene sus propias reglas y estándares de navegación. Pero eso fue solo el principio: Cuando quise chatear con mis amigos descubrí que Windows Messenger no soporta ICQ, AIM, TOM ni Jabber. Tenía forzosamente que crear una llamada cuenta de MSN para continuar pero me negué. Cuando quise mirar un DVD nuevo que había comprado en Francia Windows Media Player me dijo que no podía usar mi DVD en el PC debido al llamado "código de región". Estaba algo confuso acerca de todo esto y le pregunté a un amigo que debía hacer. Me dijo que hay transferencia de datos desde mi PC con Windows directamente a Microsoft con el objetivo de comprobar mis especificaciones de hardware y hacer un chequeo de autenticidad de mi software. Estaba indignado. Estaba pagando un montón de dinero para tener un sistema estable y seguro que respetase mi privacidad y no una basura charlatana con fallos abierta a los demás como la puerta abierta de un granero. Quise echarle un ojo al código fuente para ver si esas recriminaciones eran correctas pero no pude porque ¡no había código fuente incluido! No quiero hablar de la llamada "jerarquía de archivos" de XP donde los ficheros de configuración del sistema son accesibles vía C:\Windows\system en vez de /etc. No quieres saber lo que es la desfragmentación (no se necesita nada así en un ordenador con Linux), no hablaré del penoso terminal llamado "command" ni del porqué no deberías nunca abrir archivos adjuntos de los emails con Outlook Express.

Después de que el sistema se colgase cuando quería quemar un CD con el programa de grabación simplón incluido al mismo tiempo que hacía un análisis en una hoja de calculo con la miserable alternativa a OpenOffice de Microsoft llamada "Office XP" que me había costado otros 119€ (Lo conseguí un poco mas barato ya que soy un estudiante) puse todo otra vez en la bonita caja verde y se lo devolví a la tienda. El mismo día instalé Linux otra vez como crítica a un sistema operativo monousuario, medio verde llamado Windows XP que puede que esté preparado para el escritorio en cinco años. Hasta entonces estoy a gusto con mi libertad con BSD, OpenSolaris y Linux.