Si alguna vez necesitas crear/modificar la contraseña de un usuario desde la línea de comandos sin necesidad de que sea de manera interactiva, puedes hacerlo utilizando la herramienta chpasswd, en caso contrario tendrás que hacerlo mediante la herramienta passwd de manera interactiva.
El manual chpasswd nos dice:
chpasswd reads a list of user name and password pairs from standard input and uses this information to update a group of existing users, so you can update passwords in batch mode.
Que traducido significa ![]()
# echo “usuario:contraseña” | chpasswd
És muy útil si tienes que poner una contraseña conocida a un usuario nuevo mediante algún proceso automático mediante un script o similar, asegúrate en este caso, que solo usuarios conocidos pueden leer el fichero, puesto que la contraseña está en texto claro.
Glendix es un proyecto que pretende combinar el kernel de Linux con las herramientas de usuario que ofrece el sistema operativo Plan 9.
Para conocer mejor que ventajas puede aportar Plan 9 sobre lo que ya existe hoy en día en el mundo Linux, aquí tenemos una cita de la Wikipedia que da una idea muy general de su principal característica:
Fue desarrollado como el sucesor en investigación del sistema UNIX por el Computing Sciences Research Center de los Laboratorios Bell entre mitad de los años 80 y 2002.
Plan 9 es conocido especialmente por representar todos los interfaces del sistema, incluyendo aquellos utilizados para redes y comunicación con el usuario, a través del sistema de archivos en lugar de con sistemas especializados.
Glendix está todavía en fase de despegue y probablemente no tiene la suficiente madurez para juzgarlo. Pero de momento, hasta que haya algo listo para probar nos es suficiente con conocer que el proyecto existe y un poco de teoría para que podamos preveer cuales serán sus puntos fuertes y en que situaciones podremos sacarle partido.
A modo de curiosidad, supongo que Glendix ha tomado el nombre inspirándose en la mascota de Plan 9, que se llamaba Glenda. Os presento a Glenda ![]()

Visto en http://www.nodejodeaprender.com
Para los que no lo sepan, una manera “curiosa” de lanzar comandos de sistema en PHP, és utilizar las comillas invertidas, de la misma manera que la utilizan otros lenguagues de scripting como Bash.
Esto va para dedicado para Abraham que un día se lo comenté y le gustó esta manera de hacerlo.
~$ cat comando.php
#!/usr/bin/env php
<?php
$cmd = "whoami";
echo `$cmd`;
echo shell_exec($cmd);
system($cmd);
?>
~$ chmod u+x comando.php
~$ ./comando.php
ruben
ruben
ruben
Como podemos observar, la salida de ambos métodos és exactamente la misma, así que para ir más deprisa podemos utilizar `comando` sin miedo a tener resultados inesperados.
Funciona tanto para PHP como módulo de Apache o bien desde la línea de comandos.
Hola,
Ayer probé el último kernel para ver que funcionalidades nuevas vienen por defecto y si existe alguna ligera diferencia con las anteriores versiones. Yo he saltado directamente del versión 2.6.25 a la 2.6.28 que és la última actualmente, aparentemente todo sigue más o menos igual a vista del usuario, excepto dos grandes cambios a tener en cuenta, ext4 ya és estable, ya no es marcado más como experimental, pero el cambio que realmente me afectó a mí fué que, YA NO HAY SOPORTE POR DEFECTO PARA EXT2!, alguien puede decir que que hago yo con ext2 todavía no?, pues bien, la suelo utilizar para la partición /boot, puesto que no tiene que escribir nada en ella y el kernel se carga en memoria solo al iniciar el sistema operativo, por tanto, no tenía mucho interés para mí tener Journaling en dicha partición.
Ahora bien, justamente mi partición /boot era de ext2, solo una de 12 y és justamente la primera en montar para arrancar el sistema operativo!, así que si no hay soporte por defecto… el último kernel me regaló por navidad que no podía arrancar mí distribución GNU/Linux, puesto que ya no existía soporte para ext2. En fin, tuve que hacer los típicos trapicheos para poder arrancar desde un live CD y convertir mi partición ext2 a ext3 sin perder mis datos.
Desde un Live CD
# mkdir -p /mnt/linux/boot
# mkdir /mnt/linux/{dev,proc}
# mount /dev/sda1 /mnt/linux
# mount /dev/sda3 /mnt/linux/boot
# mount -t proc none /mnt/linux/proc
# mount -o bind /dev /mnt/linux/dev
# chroot /mnt/linux /bin/bash
Una vez dentro del chroot, para convertir la partición sin perder los datos utilizaremos tune2fs
(convierte de ext2 a ext3 sin perder datos, añade solo journaling)
# tune2fs -j /dev/sda3
# $EDITOR /etc/fstab (cambiamos todo lo de ext2 por ext3)
Y listos!
Me gusta hacerlo con chroot en vez de usar mount directamente, aunque ambos métodos són aceptables.
Una vez migrada la partición a ext3, todo arrancó correctamente ![]()
Personalmente veo más correcto que yo tenga que migrar a ext3, que no volver a añadir soporte ext2 en el kernel por defecto, ya que las compatibilidades históricas hacen retroceder injustamente la evolución del software.

# pwd
/usr/src/linux-vanilla/linux-2.6.28
# grep EXT2 arch/x86/configs/i386_defconfig
# CONFIG_EXT2_FS is not set
Saludos!
Para los que quieran profundizar sobre el kernel de linux, aquí tienen un buen “how-to”

Más info: http://makelinux.net/kernel_map
VS 
Pues si señores, la comunidad fanática del Windows XP se ha hartado ya de la actitud de Microsoft, amenazando que, si la multinacional de software americana deja de vender el Sistema Operativo XP, se pasan directamente a Linux (que dicho sea de paso, como usuario de ambos Sistemas, no me parece, para nada, mala idea. Sólo por los juegos). Microsoft,. planea dejar de vender XP el próximo Juni para fomentar el uso (que no virtudes) de Vista, que no a convencido a muchos expertos.
Esto se debe en gran parte a la política de “por huevos” que ha impuesto Microsoft, queriendo introducir un Sistema Operativo hecho con prisas para competir directamente con MAC y Linux, en su distribución Ubuntu (si esto no es cierto, pido por favor me corrijan), introduciéndolo en el 94% de los ordenadores nuevos y que, de este 94%, el 99% lo cambia por una versión de Windows XP.
La notícia la extraigo del periódico La Voz de Galicia y como siempre os digo, no tiene desperdicio leerla entera.
La Guerra de Sucesión ha empezado. Saludos.
Falta poco tiempo (una semana aprox) para que salga el kernel de Linux 2.6.27. Aquí un pequeño resumen de las principales novedades:
* page cache y get_user_pages() sin bloqueos (lockless): El page cache es el lugar (de la RAM) donde el kernel pone copias de los archivos que estan en el disco para acelerar el rendimiento. Cada instancia de la estructura “mapping” almacena la informacion de cada archivo que tiene copias de sus datos en el page cache. Esa estructura tiene un bloqueo para evitar problemas de concurrencia cuando se accede a ella. Si hay varios procesos que estan accediendo a esa estructura simultaneamente -lo cual, para ser sinceros, no es algo muy comun ni es por lo general un problema- puede formarse cierta contencion en ese bloqueo. Para resolverlo, en Linux 2.6.27 las operaciones de lectura de las estructuras del page cache se haran sin necesidad de adquirir ese bloqueo. Debido al diseño, en el que se evitan tambien ciertas operaciones costosas, tambien se ha mejorado el tiempo de lectura y modificacion del page cache en sistemas monoprocesador.
* get_user_pages(): Existe una tecnica llamada Direct I/O, que consiste en hacer operaciones de I/O saltandose completamente el page cache y todo tipo de gestion de memoria del kernel. Las grandes bases de datos son quienes suelen utilizar estas cosas, porque ellas mismas hacen su propia gestion de memoria a su gusto. get_user_pages() es una funcion interna del kernel encargada de copiar los datos de la memoria del proceso a la memoria del kernel cuando se hace Direct I/O para posteriormente escribirlo en el disco. Sin embargo, esta funcion requiere adquirir un par de bloqueos importantes, que hacen que se forme cierta contencion cuando hay varios threads usando get_user_pages() en un mismo espacio de direcciones. En 2.6.27 se ha añadido la funcion get_user_pages_fast(), cuya funcion basica es la misma, pero esta diseñada para gestionar los casos mas comunes y por tanto puede prescindir de 4 de los 8 argumentos que toma la otra funcion, y puede hacer Direct I/O sin tomar ningun bloqueo. Eso hace que las operaciones de Direct I/O se aceleren considerablemente - un 10% en un benchmark OLTP sobre DB2 en una maquina Intel Quadcore.
* Ext4 delayed allocation: Esta es una de las grandes promesas de ext4. Se trata de algo que no afecta al formato del disco, es un mero problema de implementacion. En los SO modernos, cuando una aplicacion escribe algo al disco no lo escribe inmediatamente, sino que lo guarda en buffers que seran escritos posteriormente. Sin embargo, por comodidad, la mayoria de sistemas de archivos implementan esta funcion como un caso particular de la funcion general “escribir los datos en el disco”. Me explico: en la mayor parte de sistemas de archivos, cuando la aplicacion hace write(), lo que suele hacer el sistema de archivos es llamar a las rutinas de asignacion de bloques libres a los nuevos datos, actualizar el contador de espacio libre, etc….a pesar de que los datos aun no se estan escribiendo y van a pasar un rato en los buffers. Esto es suboptimo por muchas y variadas razones; por ejemplo, un archivo puede consistir de varios write()s y el algoritmo de asignacion de bloques no puede saberlo cuando recibe el primer write(), y por tanto no puede encontrarle un lugar adecuado. La tecnica “delayed allocation” consiste, simplemente, en no llamar a esas rutinas de asignacion de bloques, solo la de actualizar el contador de espacio libre. La asignacion del espacio que los datos van a ocupar en el disco se realiza solamente cuando los datos se van a escribir verdaderamente en el disco. Esta tecnica, utilizada por sorprendentemente pocos sistemas de archivos -XFS, ZFS, reiser 4 y btrfs-, mejora el rendimiento en muchos tipos de carga -en algunos las mejoras son astronomicas- y disminuye la fragmentacion.
* UBIFS: UBIFS es un sistema de archivos diseñado por Nokia para dispositivos de almacenamiento flash puros. Cuando digo puros, me refiero a que no puede utilizarse en los tipicos lapices USB o discos externos USB hechos con memoria flash. Ese tipo de dispositivos tiene una capa de emulacion que los hace parecer, al exterior, como un dispositivo de bloques normal y corriente. UBIFS esta diseñado para los sistemas que no tienen esa capa. Es mejor que JFFS2 en varios aspectos: rendimiento, el montaje inicial es rapido, resistencia a reinicios a lo bruto…
* Kexec jump: hibernacion basada en kexec/kdump: Kexec es un sistema que permite cargar un kernel Linux en memoria y ejecutarlo directamente desde el kernel que estas corriendo, sin necesidad de reiniciar. Kdump es un sistema de volcado de memoria del kernel basado en kexec: Se carga al principio del sistema un kernel a prueba de fallos en memoria, y si hay un fallo en el kernel, el codigo de OOPS llama a kexec, ejecuta el kernel a prueba de fallos, se carga ese kernel, y se copia el resto de la memoria del sistema a un archivo - el volcado de memoria. En 2.6.27, estos sistemas se han extendido para una nueva funcion: hibernar el sistema. Se carga un kernel, se ejecuta, ese kernel guarda el contenido de la memoria en un archivo, y se apaga el sistema. Al encender de nuevo el sistema, se carga el archivo con la memoria y se sigue ejecutando.
* Soporte de integridad de datos en la capa de bloque: Hay sistemas de archivos capaces de usar checksums para detectar corrupcion en un archivo. Sin embargo, esto se detecta solamente al leerlo. SCSI y ATA estan preparando especificaciones y dispositivos que junto a los resultados de las operaciones de escritura devuelven al kernel un CRC de cada sector escrito para que se verifique si no ha habido errores.
* ftrace: ftrace es un sistema de instrumentalizacion del codigo muy simple nacido en el seno de los parches -rt: se utiliza una extension de gcc para dejar 5 bytes de NOPs en el principio de todas y cada una de las funciones del kernel (no tiene ningun efecto en el rendimiento, incluso en microbenchmarks: las CPUs modernas han optimizado este tipo de secuencias muy bien). Cuando ftrace se activa, esos NOPs se modifican con instrucciones que llaman a ftrace para tomar nota de las funciones que se van llamando. Es muy util para analizar el rendimiento de diferentes partes del codigo. Pero la parte mas util es que ftrace tiene una infraestructura de plugins que ha permitido desarrollar todo tipo de funciones: se pueden analizar los cambios de contexto, la latencia que sufre un proceso desde que es “despertado” por el gestor de procesos hasta que finalmente empieza a ejecutarse, tiempo maximo que se pasa con las interrupciones desactivadas, el tiempo gastado en porciones de codigo donde se deshabilita preempt…ademas de soporte de sysprof.
* mmiotrace: Instrumentalizacion de las operacion de mmio (memory-mapped I/O: I/O que se hace mapeando parte de la memoria a un dispositivo y escribiendo en la misma). Por lo visto es muy util para hacer ingenieria inversa de los drivers de nvidia^W^Wpropietarios.
* Capa de red multicola: En las tarjetas de red modernas, especialmente las wireless, estan apareciendo multiples colas, en vez de la tradicionalmente unica: Una para voz, otra para video, otra de baja prioridad para P2P^W”trafico de fondo”. En 2.6.27 la capa de red tiene soporte para este tipo de dispositivos.
* Firmware externo: El firmware de los drivers ha sido extraido de los mismos y centralizado en el directorio firmware/. Este firmware puede ser instalado en /lib/firmware, de manera que cuando los drivers lo necesiten, se llamara al programa que carga firmware externo desde un archivo del disco duro, algo que apreciaran los enfermos de GNUitis. Tambien se puede optar, para quien no les guste esto, por meter todo el firmware en la imagen del kernel.
* Soporte de webcams mejorado: Se ha incluido el driver gspca, que incluye soporte para la mayor parte de las webcams que quedaban por soportar en Linux.
* syscalls que crean descriptores de archivo extendidas: UNIX no fue perfecto. Por ejemplo, muchas de las diversas rutinas que crean descriptores de archivo no permiten crear descriptores de archivo con ciertas propiedades que hoy en dia se utilizan. Resulta que poder hacerlo no es un simple capricho - tambien existen ciertos aspectos de esta carencia que pueden vulnerar la seguridad. Para solucionar este problema no habia otro remedio que añadir un porrillo de syscalls nuevas que aceptaran los parametros necesarios. Aunque parezca algo sucio tener que añadir estas nuevas syscalls, lo cierto es que añadirlas es bastante “barato” y no se ha añadido casi nada de codigo.
* Soporte de chips: intel wireless 5000, chips wireless Atheros AR5008 y AR9001, soporte de tarjetas de red Realtek RTL8187y de Atheros L1E Gigabit, muchos otros drivers, soporte mejorado de drivers ya existentes, muchas otras mejoras y pequeños arreglos.
Lista completa de cambios
Visto en http://diegocg.blogspot.com
Es evidente que a día de hoy, en lo que a redes de pares se trata, BitTorrent se lleva el gato al agua. Este protocolo es de largo el más popular y usado (que sea el mejor o no lo dejaremos para otro post). Pero para poder disfrutar de este gran sistema de intercambio de ficheros necesitamos lo que llamamos un cliente de BitTorrent. La gran mayoría de estos programas son Software Libre (aunque para complacer a todos también los hay disponibles propietarios y de pago).
Para ayudarnos a decidir en lifeHacker dan su particular top 5 de clientes de BitTorrent:
- uTorrent (Windows)
Para windows uno de los más ligeros y eficientes. Mi preferido para esta plataforma. uTorrent
- Deluge (Todas las plataformas)
Un cliente ligero y bastante joven. Se trata de una aplicación Python & GTK+, y por lo tanto multiplataforma. Mi preferido para entornos Linux. DeLuge
- Transmission (Mac OS X/*nix)
Otro cliente de BitTorrent multiplataforma, rapido, ligero y minimalista. Enfatiza la facilidad de uso. Transmission
- rTorrent (*nix)
rTorrent es un cliente de torrent en modo texto para entornos unix y linux. Su principal punto a favor, aparte de ofrecer un rendimiento similar al resto de clientes torrent es su bajo consumo en recursos del sistema. rTorrent
- Vuze [aka Azureus] (Todas las plataformas)
Vuze, conocido anteriormente como Azureus, es el peso pesado de los top 5. Basado en Java, multiplataforma y opensource, es que ofrece mayor número de funcionalidades y opciones, pero puede consumir 10 veces más memoria que, por ejemplo, uTorrent. Vuze
Fuente: http://lifehacker.net
Playdeb es un repositorio para Ubuntu que incluye todos los juegos del portal GetDeb.net y que ha sido lanzado este 1 de setiembre.
De esta manera, y gracias a PlayDeb, ya no hay escusa para instalar alguno de los excelentes juegos que hay disponibles para Linux.
Para instalarlo:
- Sistema> Administración> Orígenes del Software
- Software de Terceros
- Añadir
- Agregamos: deb mirror://www.getdeb.net/playdeb-mirror/hardy/// hardy/
- Recargamos la lista
Una vez hecho esto desde Menú principal -> Añadir y quitar podremos acceder a la lista de juegos e instalarlos.
Entre los juegos disponibles (aquí la lista completa) puedes encontrar:
- FreeCiv
- Glest
- Scorched3D
- Second Life
- The Battle for Wesnorth
- Urban Terror
- Wolfenstein: Enemy Territory
Página oficial: http://www.playdeb.net/
Debo confesar que tenía cierta esperanza que el “bueno” de Hans no fuera culpable del asesinato de su mujer Nina. Pero al parecer la policía ha hecho bien su trabajo y el guru del Linux se ha venido abajo, confesando el asesinato y conduciendo a los investigadores al lugar donde enterró el cuerpo.
Recordemos que el crimen se produjo en setiembre de 2006 y Hans fue arrestado como sospechoso en octubre del mismo año. Desde entonces y hasta ahora defendió su inocencia. Hans Raiser se enfrenta a una condena de 15 años hasta cadena perpetua.
A continuación el vídeo de su confesión.
Noticia original: WIRED





