sábado, 15 de diciembre de 2007

Errores de Windows...

Fuente: MiOrdenadorEsLibre

Cuando fui a un centro comercial el otro día me encontre en todas las pantallas que hay repartidas un error bastante grande (por el tamaño de las pantallas) del pobre VLC que en Windows pues falla…

Después de esto me acordé de que hace tiempo había visto una gran colección:

Si quieres ver más errores de Windows en el blog de Daniel Clemente tienes hasta aburrirte, muy divertidos.

viernes, 14 de diciembre de 2007

Make The Move: web para los que no se deciden a usar software libre

Fuente: ThinkUbuntu

MakeTheMove

Es una página bastante curiosa en la que nos informan sobre las ventajas del código abierto y esta orientada a personas que no quieren dar el salto (”¿Para que hacerlo si con mi SO no me va mal?”). Así que en estas fechas yo os animo a que consigais vuestra distro de Ubuntu (tal y como nos comentaba ViKToR) y con la ayuda de webs como esta intentéis introducir a vuestras personas más allegadas en el mundo de Linux, al cual merece la pena entrar aunque sólo sea por pertenecer a una comunidad tan productiva y tan altruista como la que formamos con estos blogs.

FAQ de Linux

Fuente: JavierH

Mucha gente me pregunta sobre Linux, que es, el porque es mejor o peor, que hace o deja de hacer. Pues este articulo va para ellos y para quien lo quiera leer.

1.-¿Es lo mismo GNU/Linux y Linux?

Pues si nos ceñimos a las definiciones, a como está estipulado, no, no es lo mismo ya que Linux es el núcleo del sistema, el corazón del Sistema Operativo. GNU/Linux aparte de incluir el núcleo (linux) abarca también las aplicaciones (programas) que se ejecutan en este Sistema. Si no lo has entendido, con un dibujito te aclarará tus dudas.

GNU/Linux

En definitiva, llamar Linux al sistema es más práctico y simple para usuarios que creen que Windows® es la única cosa sobre la tierra.

2.- ¿Por qué GNU es un ñu?

“GNU” es el nombre en inglés para el animal que se conoce como “ñu” en castellano

Cuando Richard Stallman comenzó a diseñar GNU, el principal sistema en uso era Unix, que es privativo. Como GNU tiene funciones similares a (y es compatible con) Unix, pero es software libre, usó el término GNU que significa “GNU’s Not Unix” (en castellano, “GNU no es Unix”). Es un acrónimo recursivo… (Si disfruta este tipo de humor, vea lo que significa GNU HURD).

3.- ¿Linux está en mi idioma?

¡Claro! Todas las distribuciones principales están disponibles en varios idiomas, y soportan muchos tipos de teclados.

Al contrario de Windows, todos los idiomas están incluidos en el disco de instalación, así que no hace falta que descargue (o pague) una versión totalmente diferente para cambiar el lenguaje en su computador.

4.- ¿Puedo instalar “el MSN Messenger” y “el Word” en Linux?

No, aunque se puede conseguir que funcione, hay versiones equivalente para Linux de los programas más usados en Windows, podemos ver su equivalencia de Windows en Linux

5.-¿Puedo jugar a los mismos juegos que en Windows?

Si y no. Las multinacionales todavía no han dado el paso de Windows a Linux ni siquiera Windows y Linux, aunque alguna ya está aprendiendo.

Hay juegos famosos (Quake III, Quake IV, Doom III…) que si tienen un instalador para GNU/Linux y se puede jugar sin emularlos, aunque la gran mayoría no tienen este instalador, muchos de ellos se pueden instalar gracias a los emuladores wine y cedega.

6.-Linux se puede bajar de Internet, pero mi Windows también. ¿Qué gano yo?

Primero ganas que no te metan en la carcel. Aunque parezca mentira, Windows cuesta dinero y no solo para empresas y si te lo bajas del eMule o de Bittorrent o de donde sea, es ilegal y está penado con el importe del Windows (más de 100€, depende de la versión) y una multa que no es ninguna tontería.

Con Linux, lo puedes bajar libremente, modificarlo, lanzarle los CD al perro, incluso regalarselo/dejarselo a un amigo y todo eso sin piratear.

Además, con Linux, no tienes que validarlo para poder actualizar el Sistema, que periodicamente te recuerda si tienes actualizaciones, no solo del Sistema Operativo, sino de todas las aplicaciones que tienes instaladas.

7.- Aparte de todo lo que has dicho, ¿qué añadirías?

Añadiría que con Linux no hace falta tener un ordenador potente para que el Sistema Operativo funcione correctamente y de forma fluida, mientras que con Windows necesitas un equipo nuevo o cambiar muchas piezas del equipo cada vez que sacan una versión nueva.

Buscar archivos con unos permisos determinados

Fuente: LinuTeca

Quizá puede que no tenga gran atractivo el poder buscar archivos en el sistemas que tengan ciertos permisos pero ésta es una buena medida de defensa y ataque.

Si queremos tener nuestro sistema bien seguro tendremos que tener los permisos más restrictivos posibles asique necesitamos saber si tenemos algún archivo que no queremos que pueda ejecutar o editar un usuario. Además puede representar un riesgo de cara a nuestros atacantes tener archivos ejecutables y editables por parte de cualquier usuario o que simplemente tengan el bit SUID o SGID activo. Si tenemos en nuestro sistema un archivo con el bit SUID cuyo propietario es root y además puede ser editado por cualquier usuario, estamos dejando abierta una puerta en nuestro sistema para que cualquiera con los conocimientos suficientes de bash scripting haga un código malicioso y lo ejecute como si fuera root.

Para encontrar estos archivos escribiremos en consola el comando:

find / -perm -X -ls

La X de arriba la sustituiremos por los permisos que queremos encontrar como por ejemplo 4000. Esto indica al find que muestre sólo los archivos que tengan el bit SUID activo (4) y que no tengan permisos para nadie (000).
Otro ejemplo, si quisiéramos buscar un archivo que tuviera permisos de rwx en los usuarios y el bit de SUID activo y ningun permiso más para grupos y otros, cambiaríamos la X por 4700.
En resumen el primer número corresponderá al SUID, SGID o sticky bit. 4 para SUID, 2 para SGID y 1 para stiky bit. Los tres siguientes se corresponden con usuario,grupo,otros.
En el caso de que queramos encontrar un archivo que tenga los permios de SUID,SGID y sticky bit sólo habría que sumarlos, como en los permisos normales por ejemplo:

find / -perm 7000 -ls

Si además queremos que nos muestre los archivos que tengan el SUID y que no tengan permisos de usuario, ni grupo, ni otros ‘o’ los que tengan el SUID y permisos rwx en el usuario, podemos hacer una anidación con un or booleano:

find / \( -perm -4000 -o -perm 4700 \) -ls

Con esto ya estarámos dispuestos para buscar fallos en los permisos y poder hacer un ataque o defendernos de los hackers. Pero una cosa más, cuando lo probéis os daréis cuenta de que salen muchos archivos por pantalla y es muy difícil procesar esa información, asique para hacerlo con más calma podemos redirigir la salida a un archivo en vez de a la pantalla asi:

find / \( -perm -4000 -o -perm 4700 \) -ls > archivo.txt

Por úlmito sólo me queda decir que el comando -ls sirve en este caso para mostrarnos no sólo el nombre de los archivos cuando los encuentre sino los permisos y toda la demás información que nos ofrece ‘ls’.

Descarga videos de Youtube sin instalar ningún programa

Ya se ha hablado de dos programas para descargar vídeos de YouTube usando dos programas: PyTube y QTTube. En esta ocasión añado al blog un truquillo para recuperarlos del caché de archivos temporales sin instalar nada.

Fuente: ThinkUbuntu

El otro día estuve hablando con un amigo que me preguntaba como podía descargar un video de Youtube (con extensión .flv) para poder reproducirlo en su ordenador, si había un plugin funcional para firefox o si había alguna forma directa y recordé lo fácil que resulta hacerlo en Ubuntu.

Supongo que la información que os dejo aquí es la misma para todas las versiones de Ubuntu e, incluso, me atrevería a decir que para todas las distros de Linux. Pero que cada uno lo pruebe en su casa.

Para empezar abrimos la página en la que aparezca el video que queremos descargar en formato .flv (Flash Video, los de Youtube, Googlevideo y la mayoría de los que aparecen incrustados en las páginas web) y dejamos que se cargue por completo en el navegador. Una vez cargado en el navegador nos vamos a la carpeta /tmp de nuestro sistema y allí encontraremos un archivo con un nombre parecido a este FlashAvhMRY, lo copiamos a la carpeta de nuestro home que queramos y lo renombramos dándole extensíón .flv, así lo tenemos salvado en nuestro disco duro y podemos verlo cada vez que queramos usando nuestro vlc o mplayer.

Los pasos en consola son estos (recordad que el nombre del archivo de video en la carpeta /tmp podría ser ligeramente distinto y que “$” se refiere al prompt de la consola y no hay que escribirlo):

$ cd /tmp

$ ls -l

$ cp -v FlashAvhMRY /home/vuestro_usuario/Escritorio/nombre_video.flv

Para convertir el archivo .flv a .avi podemos usar ffmpeg. Si no lo tenemos instalado lo hacemos con la siguiente cadena en consola:

$ sudo apt-get install ffmpeg

A continuación abrimos la consola y nos vamos al directorio donde hayamos salvado nuestro Flash Video y escribimos lo siguiente:

$ ffmpeg -i nombre_archivo.flv nombre_archivo.avi

Así hemos salvado nuestro video del youtube para poder verlo en formato .avi cada vez que nos apetezca.

Bombas Fork

Fuente: LinuTeca

Lo primero, ¿en que consisten las bombas fork?, para los que sabéis lo que es un fork, ya os lo imaginaréis pero para los que no lo sepan, se trata de crear procesos hasta que el sistema se vuelve inoperable y hay que reiniciarlo. Esta es una manera muy común de ‘tirar’ servidores si no tienen la proteción adecuada.

Un ejemplo de bomba fork en unix sería el siguiente:

:(){ :|:& };:

En windows sería algo asi:

:s
start %0
goto s

Como en windows está muy claro la explicación la centraré en el elemplo unix.

Tenemos la bomba :(){ :|:& };: que si la escribimos en consola en nuestro Ubuntu (por ejemplo) el sistema se bloqueará, a continuación explico cada carácter.

Los dos puntos ‘:’ van a ser el nombre de nuestra funcion y los paréntesis ‘()’ vacios, contendrán los parámetros de ésta, osea ninguno.

A continuación abrimos la llave ‘{’ para escribir el cuerpo de la función y cuidado porque después hay un espacio. Ahora viene lo interesante, los dos puntos ‘:’ hacen una llamada la misma función recursivamente a través de una tubería ‘|’ y se ejecuta en el background gracias al ‘$’.

Con esto hemos terminado el cuerpo de la función y escribimos un espacio y cerramos la función con ‘}’,ahora indicamos el fin de instrucción con ‘;’ y invocamos a la función ‘:’ que acabamos de crear.

Sólo os aconsejo que no lo provéis sino habéis guardado todos los trabajos abiertos.

Una forma de solucionarlo es cambiando el valor de ‘ulimit’. Si escribimos ulimit en consola aparecerá algo asi:

ekhtor@macbook:~$ ulimit
unlimited

Efectivamente al tenerlo ilimitado llegará un punto en el que la bomba se apodere de toda nuestra memoria y para cambiar el valor a uno más seguro sólo habría que pasarle como parámetro el número de procesos que queremos que ejecute a la vez un usuario. Ejemplo:

ekhtor@macbook:~$ ulimit 5000

ekhtor@macbook:~$ ulimit

5000

Esto depende de cada máquina, unas pueden ejecutar más que otras asique no os la juguéis. Otro dato a tener en cuenta sería el número de usuarios que accederán a nuestra máquina porque si ésta es capaz de ejecutar 5000 procesos, acceden tres usuarios y ejecutan una bomba simultánea entre los tres estarían ejecutando 15000 procesos y nuestra máquina se bloquearía.

jueves, 13 de diciembre de 2007

La evolución de Ubuntu en el tiempo

Fuente: ThinkUbuntu

Bonito gráfico con imágenes de las distintas versiones de ubuntu y sus respectivos nombres traducidos al Castellano, incluyendo una posible imagen de lo que será la próxima Hardy Heron.

¿Quizás sea esta la siguiente imagen de la evolución de Ubuntu?

Visto en Juegoteca y Ubunteate

Asignar un espacio determnado en disco a los usuarios

Fuente: LinuTeca

Anteriormente vimos como la creación de procesos recursivos podía implicar la congelación del sistema y como solucionarlo estableciendo una cantidad máxima de procesos en ejecución por usuario.

Esto mismo puede pasar si un usuario llena de información nuestro disco duro, y para remediarlo estableceremos ‘Cuotas’ de usuario para que tengan un límite de espacio en disco.Éstas cuotas son restricciones del número de bloques de espacio en disco y de i-nodos (ficheros, directorios…) que un usuario puede llegar a tener. Las cuotas, sólo se establecen para las particiones que queramos, no para la totalidad del sistema asique si quisiéramos activar las cuotas en nuestra partición principal, sólo tendríamos que añadir al /etc/fstab en el cuarto campo de la partición ‘usrquota’,pero antes instalamos el paquete quota:

sudo apt-get install quota

Luego modificamos el /etc/fstab:

/media/hdb1 ext3 defaults,usrquota 0 2

En este caso la partición /media/hdb1 que será el disco duro secundario tendría establecidas las cuotas.
Después tenemos que crear en la partición dos archivos en mi caso será en /media/hdb1:

ekhtor@ubuntu:/media/hdb1$ sudo touch quota.user
ekhtor@ubuntu:/media/hdb1$ sudo touch quota.group

Y ahora solo tenemos que darle permisos a los archivos:

ekhtor@ubuntu:/media/hdb1$ sudo chmod 600 quota.*

Para que los cambios surtan efecto tenemos que reiniciar el sistema, y una vez hecho editamos las cuotas con el comando ‘edquota -u’, que nos aparecerá algo parecido a ésto:

Disk quotas for user ekhtor (uid 1000):
Filesystem blocks soft hard inodes soft hard

/dev/hdb1 0 0 0 0 0 0

Aquí podemos ver que no hay límites, para establecerlos tenemos que modificar las variables soft y hard, que las dos primeras se referiran a los bloques y las dos últimas a los i-nodos.
Para saber de cuanto tamaño es un bloque usamos la instrucción df /media/hdb1 que nos devulve esto:

S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/hdb1 12563216 1392004 10533032 12% /media/hdb1

Podemos observar que los bloques son de 1K asique si quisiéramos asignarle al usuario ekhtor 50000K’s que serían unos 50 Mb tendríamos que cambiar la primera variable hard por 50000, y a la variable soft le asignaremos 40000. La variable hard va a ser el tamaño que nunca sobrepasará el usuario y la soft mandará un aviso cuando se sorbrepase, luego cuando el usuario llegue a los 40 megas se le enviará un aviso de que el espacio se le está agotando y si llega a los 50 megas ya no podrá usar más.

Si queremos además limitar el número de archivos y directorios que tendrá el usuario lo haremos en el segundo bloque de soft y hard de igual forma.

Al igual que para los usuarios se hace con el grupo pero en vez de edquota -u ‘usuario’ se hace con el comando edquota -g ‘grupo’. Puede parecer una tontería limitar el número de ficheros en un sistema si ya hemos limitado el espacio físico pero realmente cuantos más inodos haya en un sistema, más se ralentiza asique en servidores grandes es una opción a tener en cuenta.

Casi todos los sabores de Ubuntu

Fuente: DepuesDeGoogle

(Actualizado a 20.11.07. Gracias, ffuentes)

Ubuntu: Ubuntu con Gnome
Kubuntu: Ubuntu con KDE
Xubuntu: Ubuntu con Xfce
Fluxbuntu: Ubuntu con Fluxbox, más ligero todavía que el anterior
Elbuntu (¿Ebuntu?): Beta, no es un proyecto oficial. Versión ligera, con Enlightenment E17
Ubuntu Lite: Ubuntu minimísimo. Para máquinas lentas (afirman que corre sobre Pentium de 200 MHz con 64 Mb de RAM o incluso máquinas de menores prestaciones. Tengo que probarlo) OpenBox o IceWM como escritorio, además de ROX-Filer, fbpannel, Kazehakase (un navegador), Sylpheed, Gaim, XMMS, Abiword, GNUmeric y mtpaint. No es un producto oficial de Canonical.

Edubuntu: Ubuntu orientado al entorno educativo
Ubuntu Studio: Ubuntu orientado a la edición multimedia profesional, especialmente de audio.
Mythubuntu: Estación multimedia (vamos, una alternativa libre al Windows Media Center) con MythTV, un conjunto de aplicaciones que convierten el PC en un PVR, grabador digital y programable de televisión.
nUbuntu (Network Ubuntu): Ubuntu mínimo con Fluxbox y herramientas de penetración y seguridad. Para hackers.
Ubuntu JeOS: Ubuntu ligero (200 Mb + 60 Mb de VMWare) y kernel optimizado para correr aplicaciones virtuales de VMWare.
Comfusion: Ubuntu + Compiz + Fusion

Gobuntu: Ubuntu íntegra y estrictamente libre.
gNewSense: Ubuntu 100 % libre. Apoyado por la FSF y recomendado por Stallman.
X-Evian: Basada en Xubuntu. “Para usuarios activistas, para la producción cultural, tecnológica y social liberada”

Linux Mint: Lo contrario. Ubuntu windowsero o mackero. Elegante y confortable, con codecs, Java y demás software no libre.
Ubuntu Christmas Edition 2006: Ubuntu con todo lo último incluido software propietario. Para regalar en Navidad.
Ubuntu Ultimate Edition: Actualización de la versión anterior

Ubuntu CE (Christian Edition): Ubuntu con temas visuales cristianos y programas relacionados.
Ichthux: Kubuntu para cristianos.
Ubuntu ME (Ubuntu Muslim Edition): Ubuntu para musulmanes. Horarios de salat, herramienta para el estudio del Corán, herramienta para filtrado de contenido web… y temas visuales.

Ubuntu Server Edition: Ubuntu con LAMP
Ubuntu Home Server: Para administrar una LAN. Servidor de archivos, impresión, streaming y backups.

Ubuntu Mobile and Embedded: Proyecto patrocinado por Canonical e Intel. Mi próximo móvil quiero que corra sobre Ubuntu!!

Comando awk

Fuente: LinuTeca

Awk es un lenguaje de búsqueda y procesamiento de patrones. Esto quiere decir que podemos tratar archivos buscando patrones y realizar operaciones matemáticas con los resultados. A simple vista puede resultar parecido con el comando grep o egrep, pero lo cierto esque la potencia del comando awk les supera con creces.

En un caso particular, este comando me ayudó mucho porque era incapaz de obtener el resultado deseado con egrep, a continuación expongo el caso:

Mi intención era obtener la temperatura del microprocesador para que a través de un script, pueda aumentar o disminuir la velocidad de los ventiladores.

Al ejecutar el comando ’sensors’(hay que tener instalado el lm-sensors me devolvía lo siguiente:

ekhtor@macbook:~$ sensors

applesmc-isa-0300

Adapter: ISA adapter

temp2: +128°C

temp3: +56°C

temp4: +51°C

temp8: +51°C

temp9: +52°C

temp11: +42°C

Exhaust :3000 RPM (safe = 1200 RPM, min = 3000 RPM, max = 6200 RPM)coretemp-isa-0000

Adapter: ISA adapter

Core 0: +47°C (high = +100°C)

coretemp-isa-0001

Adapter: ISA adapter

Core 1: +46°C (high = +100°C)

El patrón que elegí fue ‘0:’ para obtener la línea ‘Core 0: +47°C (high = +100°C)’ con el comando egrep:

ekhtor@macbook:~$ sensors |egrep 0:

Core 0: +46°C (high = +100°C)

Lo siguiente que se me ocurrió fue usar el comando cut para dejar al principio de la linea la temperatura:

ekhtor@macbook:~$ sensors | egrep 0: | cut -d+ -f2

46°C (high = +

Y el problema surge aqui, cuando intento ejecutar de nuevo el comando cut para coger el primer campo y usando el patrón ‘º’ veo que no es admitido y se me ocurrieron muchas formas de hacerlo truncando la línea pero no me parecía demasiado óptimo asique lo solucioné con la suiguiente instrucción:

ekhtor@macbook:~$ sensors | egrep 0: | cut -d+ -f2 | awk ‘BEGIN{FS = "°"}{print $1}’

46

Ahora si obtuve el resultado deseado, ya podía trabajar con la temperatura normalmente.

El funcionamiento de awk básico es muy sencillo, la separación por defecto de las columnas de un archivo la realiza a través de un espacio. Para cambiar ese patrón, solo cambié la variable FS, y con el print mostramos por pantalla las columnas que queremos, la $0 muestra la línea entera, la $1 la primera columna, $2 la segunda y sucesivamente…

En el caso de que quisieramos mostrar la primera y segunda columna del archivo ‘ejemplo.txt’ el comando sería:

awk ‘{print $1 $2}’ ejemplo.txt

Para más información acerca del comando en la sección de manuales encontraréis documentación más completa.