Linux

  • Por favor ejecutar este comando desde la línea de comandos de un sistema corriendo GNU/Linux:

    echo -ne "F\x65$(ls -d /lib) \x34 " | sed -e "s/\///" | sed -e "s/b/ces/"; echo -ne "\x61\x62\x72\x69\x6c\x65\x73 "; echo $(uname -s)ito\!
    

    Que lo disfruten ;)

  • Ayer comencé la inciativa en Twitter y Google Plus para recopilar anécdotas y recordar cuál fue nuestra primera instalación de GNU/Linux, bajo el hashtag #miprimerlinux.

  • Mientras que OpenBSD es un sistema operativo Unix muy tradicional y resulta muy familiar a aquellos que hayan utilizado otros sistemas operativos de la familia Unix, existen diferencias importantes. Si el único conocimiento de los sistemas Unix se limita a una experiencia con una variante de Linux, seguramente OpenBSD resultará "extraño". Del mismo modo en que Linux resulta extraño a cualquier usuario proveniente de OpenBSD. Si en cambio uno conoce la filosofía Unix y ha extendido su conocimiento más allá de una plataforma en particular, encontrará a OpenBSD muy familiar y un auténtico Unix. Por el contrario, si uno ha aprendido Unix usando la metodología "tipea ésto para hacer aquello" o a través de libros como "Aprende Ubuntu 16.04 en 31.4 horas", y cree que así "sabe" Unix, encontrará a OpenBSD muy diferente.

  • De acuerdo al ranking de DistroWatch, desde hace ya más de dos años Linux Mint se mantiene como la distribución GNU/Linux más popular, por encima de gigantes como Ubuntu, Fedora, Debian y openSUSE (entre otras).

    DistroWatch es un sitio Web (creado en el año 2001) que se encarga de realizar el seguimiento de distribuciones GNU/Linux y paquetes, recopilar noticias sobre lanzamientos, y elaborar un ranking de visitas para determinar la popularidad de las diferentes distribuciones. Las estadísticas de page hit ranking elaboradas por DistroWatch han ganado renombre sobre los años. Estas estadísticas son una forma tentativa para determinar la popularidad de las distribuciones GNU/Linux y otros sistemas operativos libres de acuerdo a la cantidad de visitas en sus sitios Web. Por supuesto no se corresponden con la cantidad de instalaciones, sino que simplemente determinan qué sitio es el más visitado. Aunque es un indicio de qué distribución es la más popular. Para sumar las visitas DistroWatch cuenta un hit por dirección IP.

  • Ninguna, todas las distribuciones GNU/Linux que se jactan de ser "fáciles de instalar y mantener" o "para principiantes" tienen defectos, son inestables, o no tienen un enfoque adecuado para usuarios acostumbrados al escritorio tradicional de Windows de toda la vida. Muchos dirán "Linux Mint" como la mejor distribución para principiantes. Pero para mí no sirve, por dos razones: hasta ahora sólo posee 9 meses de soporte (ya lo sé, a futuro van a salir versiones LTS); y es inestable porque liberan las versiones con poco o nulo testeo (tiene muchos problemas con ACPI en las portátiles). Por otro lado Ubuntu con su escritorio Unity (o GNOME 3) es espantoso. Si se lo recomiendo a un usuario que quiere abandonar su Windows XP o 7 y ve esa interfaz horrible, ese pseudo escritorio, me mata. Es como la interfaz de Windows 8.

    Por eso a veces pienso que GNU/Linux no es adecuado para el pariente que no sabe absolutamente nada de computadoras, para la PC de tu abuelita, o para la vecina (instalá Windows y dejate de joder). Las distribuciones fáciles de usar son malas. En vez de preocuparse tanto porque el sistema inicie rápido, por SystemD y todo su linaje, ¿por qué no se preocupan por hacer un sistema realmente amigable para el usuario común, como OS X o Windows? Me quedo con mi Slackware. Pero lamentablemente no se lo puedo recomendar a gente que no tiene conocimientos básicos de sistemas o que no le gusta la tecnología, porque su mantenimiento no es sencillo. Ni siquiera se lo puedo recomendar a muchos de mis colegas de sistemas, porque la realidad es que la mayoría no quiere ponerse a compilar (por más sencillo que sea) cada vez que necesita instalar una aplicación nueva. Quiere todo ya, siguiente, siguiente, siguiente...

    Mi percepción en general sobre GNU/Linux en sistemas de escritorio es que las distribuciones que funcionan realmente muy bien, son las que requieren mayor intervención del usuario. Y las que son amigables y fáciles de usar tienen fallos, son inestables, y la mayoría no ofrece un escritorio tradicional limpio y simple (en este sentido pienso que Cinnamon es el mejor entorno de escritorio que he probado, pero Mint es inestable y tiene unos cuantos problemas). Entonces cuando alguien me dice "así que vos usás Linux, lo tengo que probar algún día, ¿qué distribución instalo?" no sé que responder, y eso es grave. Empiezo a tirar nombres por el aire: "y... un Ubuntu o Mint, qué se yo, yo uso Slackware, Fedora no porque es una cagada...". Pero la realidad es que Ubuntu no es lo que era antes, Mint es inestable y viene con fallos que sobreviven release tras release, Fedora apesta, y Slackware no es adecuado para un novicio.

    Linux está lejos de triunfar en los sistemas de escritorio. Linus se expresó al respecto y creo que tiene razón.

  • En la salida de atop de un servidor Linux me encontré con esta situación extraña:

    Si queda memoria principal disponible y el uso de swap es cero, ¿por qué la fila SWP figura en color rojo (uso crítico)?

  • En este artículo voy a presentar diferentes técnicas y herramientas para obtener información detallada acerca del procesador o CPU de un sistema, como siempre desde GNU/Linux.

  • Tradicionalmente en los sistemas Unix, init es el primer proceso que se ejecuta durante el inicio del sistema en modo usuario (userland), luego de la carga del kernel. El proceso init es un demonio que continua su ejecución hasta que el sistema se apaga. Es el padre de todos los procesos (de forma directa o indirecta) y es quien adopta automáticamente los procesos huérfanos. Es iniciado por el kernel utilizando un nombre de archivo hard-coded, y si el kernel no es capaz de iniciarlo, el resultado es un kernel panic. Típicamente tiene el ID de proceso (PID) 1.

  • Cuantas veces necesitamos obtener información sobre procesos y utilizamos la instrucción:

    ps aux

    Sin saber bien ¿qué hace?

  • Veamos 4 formas diferentes de mostrar el nombre de usuario asociado a la sesión actual desde línea de comandos en Linux y sus diferencias.

  • Recientemente me tocó actualizar mi viejo servidor ownCloud, el cual se encontraba en fase de desarrollo y finalmente pasó a producción. El problema fue que durante ese lapso, ownCloud liberó dos major releases (versiones que no son meramente revisiones, o correcciones de bugs y vulnerabilidades, sino que incorporan cambios substanciales), y lamentablente ownCloud no permite saltearse major releases al momento de actualizar. Por ende se debe actualizar una a una todas las major releases hasta llegar a la versión estable actual.

  • La herramienta de línea de comandos fold permite cortar las líneas de un archivo de texto o entrada estándar para que se ajusten a un ancho específico.

  • Como algunos de mis seguidores en Google Plus saben, me gusta el Rock, es mi genero musical favorito. Aunque más que simplemente "favorito", amo el rock, es una de mis pasiones. ¿Qué tiene que ver esto con GNU/Linux? Aparentemente nada, pero se me antoja escribir este artículo, y como el blog es mío, hago lo que quiero.

    Aquellos lectores a quienes no les guste el rock por favor sigan leyendo, porque más allá de esta introducción este artículo no tiene nada que ver con el Rock, y sí tiene mucho que ver con GNU/Linux.

  • Cuando se trabaja desde la terminal o línea de comandos a veces es deseable borrar la pantalla junto con todo su historial (típicamente conocido como scrollback buffer). Ya sea por seguridad, es decir, borrar información sensible que pueda haber quedado en pantalla (como por ejemplo credenciales), o simplemente como "limpieza". Este artículo presenta el uso de las herramientas clear y reset en diferentes tipos de consolas.

  • Cuando se trabaja con la salida estándar (la pantalla o archivo donde se envía la información o flujo de salida de los comandos ejecutados) en Bash, puede ser útil o necesario borrar contenido (caracteres) luego de que ya ha sido enviado a la misma. Para ello, en sistemas GNU/Linux, se puede recurrir a la herramienta tput. He aquí algunos ejemplos de su uso.

  • Me volvió a suceder, esta vez en mi Slackware:

    19:41 emi@vaio ~ $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda5        29G   27G     0 100% /
    /dev/sda1       1.9G   21M  1.8G   2% /boot
    /dev/sda6        29G   19G  8.0G  70% /home
    /dev/sda8       191G  186G  4.9G  98% /data
    tmpfs           2.0G  4.0K  2.0G   1% /dev/shm
    /dev/sda9       173G  152G   22G  88% /vault
    

    Como podrán observar, estoy algo complicado de espacio en disco. Pero lo torpe fue haber llenado el sistema de archivos raíz /. Muy raro siendo que dicha partición tiene 30 GB. Cosas que suceden por no utilizar un esquema de particionado más sensato (como mínimo montar los directorios /tmp y /var en particiones separadas). Aunque se puede perdonar el descuido por tratarse de un sistema de escritorio.

    El punto es que me sorprendí al encontrar el sistema de archivos raíz colmado, pues tenía la sensación de que había espacio de sobra. Pero lo que más me sorprendió fue ésto:

    /dev/sda5        29G   27G     0 100% /
    

    Si el tamaño total es 29G y tiene 27G utilizados, ¿cómo puede ser que esté 100% en uso y el espacio disponible sea 0?

    Interesante situación, y es la primera vez que me ocurre. Había oído de este caso dialogando con un experto: quedan 2GB de espacio disponible, pero df reporta que el filesystem está lleno, quedan 0 bytes disponibles. ¿A qué se debe ésto? A que se ha llenado la tabla de i-nodos. Por más que queden bloques libres, no quedan i-nodos disponibles para crear nuevos archivos (que puedan utilizar esos bloques libres), sólo es posible que los archivos existentes aumenten su tamaño. Se ha llegado al límite máximo de archivos en el filesystem.

  • Tuve la necesidad de encontrar todos los archivos modificados el mes de marzo de 2018. Tarea simple gracias a find.

  • Hace un tiempo expliqué cómo funcionan los bits SETUID y SETGID. Sin embargo, al final de dicho artículo mencioné los riesgos involucrados al utilizar estos bits de modo, por ello es recomendable evitar o minimizar su uso. Una buena práctica al momento de realizar el hardening de un servidor es listar todos los archivos que tengan SETUID o SETGID, para evitar configuraciones inseguras.

    Este artículo explica cómo utilizar find para buscar y encontrar todos los archivos y directorios que tengan SETUID y/o SETGID. Y de yapa cómo encontrar archivos y directorios con el STICKY bit habilitado (protección contra el borrado).

  • Tuve la necesidad de buscar en un servidor los archivos que fueron creados por un usuario en particular, más específicamente "www-data" (usuario con el que corre Apache en los sistemas Debian y derivados). Esto fue lo único que se me ocurrió hasta el momento para encontrarlos (sin recurrir a auditd).

  • En este breve artículo voy a demostrar cómo realizar cálculos matemáticos simples utilizando bc en GNU/Linux. Este utilitario puede ser de gran utilidad para salir del paso y realizar cuentas rápidas desde línea de comandos (sin necesidad de abrir aplicaciones gráficas como KCalc u otras). Pero mejor aún cuando se necesita realizar algún cálculo aritmético desde un script Bash.