Cuentas verificadas en Bluesky: cómo funcionan y cómo verificarte

En Bluesky no existe en este momento nadie que se ocupe de repartir marcas de verificación a las cuentas que sean oficiales, como las de X/Twitter o Instagram. Sin embargo, es posible saber si una cuenta es oficial o una imitación mirando su nombre de usuario.

En Bluesky, es posible tener un identificador de usuario que termine en .bsky.social. Pero, si tienes un sitio web, puedes cambiar tu identificador por el nombre de esa web. Bluesky entonces verifica que seas la persona propietaria de ese sitio web. Por lo tanto, se puede asumir que si un identificador de Bluesky es un dominio propio, entonces es que la persona que controla esa cuenta es la misma que la que controla esa página web.

Cómo funcionan las cuentas verificadas en Bluesky

Por ejemplo, la cuenta de Bluesky de El Mundo Today es @elmundotoday.com. Como esa cuenta se llama igual que la web donde publican sus noticias, sabemos que es la oficial. Sabemos que @bsky.app es la cuenta oficial de Bluesky porque su nombre de usuario es el de la propia web a la que entras para publicar posts.

Otro ejemplo es @20minutos.es. Es la cuenta oficial porque su nombre de usuario es la URL de su periódico. La única forma de que hayan podido hacer eso es teniendo el control de la página web. ¿Será @eldiarioes.bsky.social la cuenta oficial de eldiario.es, o será una imitación que habrá configurado alguien? No se sabe en este momento; tal vez si cambiasen el nombre de usuario por @eldiario.es lo podríamos saber. Actualizo: el handle ahora es @eldiario.es, así que ahora sí están verificados y sabemos que son ellos.

Yo no puedo poner mi cuenta de Bluesky como @wikipedia.org, porque la única forma de hacer eso es haciendo un ajuste al sitio web o al dominio wikipedia.org para probar que controlo esa página web, cosa que lógicamente no ocurre, por lo que no es posible simplemente ponerme ese nombre de usuario.

Aun así, hay mucha gente que utiliza igualmente Bluesky pero que no sabe que puede hacer este cambio. Si tienes otra forma de verificar de forma externa que una cuenta terminada en .bsky.social es tuya (por ejemplo, porque lo diga en otra red social o en su página web), de algún modo eso también lo confirma.

De todos modos, hacer el cambio, si posees un dominio porque ya tengas una web o un sistema de correo, y sabes qué botón debes tocar, es muy sencillo y te toma cinco minutos.

Cómo verificar la cuenta de Bluesky

Primer paso: necesitas tener un dominio. Si ya tienes un blog o una página, esto es fácil. Si no, primero deberás obtener uno. Esto cuesta dinero porque los dominios hay que renovarlos periódicamente. Hay dominios más caros y dominios más baratos. Mi experiencia con los dominios regionales «normales» (por ejemplo, .es) es que suelen ser baratos. Algunos .com también pueden serlo. Los dominios «modernos» como .dev, .rocks, .gay, también son otra opción que puede darle más personalidad a tu dominio pero a menudo esconden costos de renovación más caros, así que plantéatelo bien. Si no tenías una web hasta el momento y consideras que no es relevante para ti pagar por una sólo para esto, supongo que hasta aquí has llegado.

Hecho eso. Para poder verificar que controlas ese dominio, vas a tener que hacer una de las dos cosas siguientes. Cuál elijas depende de tus habilidades.

  • Una opción es ir a las opciones de DNS de tu dominio y agregar un código que Bluesky te va a proporcionar. Tal vez sepas administrar sitios web y prefieras usar la verificación por DNS. Es la forma más limpia porque no te obliga a modificar tu página web o incluso a crear una.
  • Otra opción es cargar un archivo en tu sitio web, que tiene que estar en una ruta concreta. Tal vez no controles la DNS, o no sepas hacerlo y no tengas nadie a quien puedas pedir ayuda, y prefieras cargar un archivo en una ubicación concreta de tu página usando un mísero FTP o instalando NGINX o Apache en tu VPS, por ejemplo.

Voy a hacer un ejemplo con este blog para mostrarte los pasos. Supongamos que quiero cambiar mi identificador de cuenta por @nosgustalinux.es para probar que mi cuenta de Bluesky es la oficial.

Ve a los Ajustes, y desde ahí localiza la sección Cambiar nombre de usuario. Desde ahí, haz clic en el enlace «Tengo mi propio nombre de usuario».

Pantallazo de las opciones de Bluesky
La pantalla para cambiar el nombre de usuario.

Ahí verás una pantalla un poco técnica. En primer lugar, pon el nombre de tu dominio en la parte de arriba, donde dice «Introduce el dominio que quieres utilizar». Y después, elige una de las dos formas de verificar tu cuenta.

Ajustes de dominio en Bluesky
Pon tu nombre de dominio en la parte de arriba de este diálogo.

Si sabes usar las opciones de DNS de tu sitio web, puedes entrar en el panel de control del lugar donde hayas contratado el dominio, y agregar un nuevo dominio de tipo TXT que se llame _atproto. Ponle como valor lo que ves en la pantalla, ese código especial que empieza por did=did:plc:. Aquí depende mucho de cada proveedor, así que consulta la ayuda en tu proveedor si no sabes cómo llegar a esa pantalla.

Ajustes de DNS en el panel de OVH.
Opciones de configuración de DNS en OVH.

Una vez hayas creado esa entrada en la DNS de tu dominio, espera uno o dos minutos para que propague bien, y luego pulsa el botón «Verify DNS record» en Bluesky. Deberías ver el mensaje «¡Dominio verificado!», que te indica que todo se ha conectado bien. Confirma de nuevo, y con eso habrás cambiado tu identificador de usuario.

Mensaje de confirmación dice "Dominio verificado".
Este mensaje te confirma que se ha verificado bien la cuenta.

Si, por lo que sea, no tienes forma de entrar en las opciones de DNS de tu dominio (o no las hay, por ejemplo, GitHub Pages o GitLab Pages), puedes pulsar el botón Sin panel de DNS y seguir los pasos que te indican ahí. En este caso, tendrías que crear un archivo en tu página web que sea visible desde la URL que te indican, y cuyo contenido sea lo que te piden que tenga. Si puedes crear archivos en tu web, será que es tuya, así que es un proceso de verificación válido.

Captura de pantalla de Bluesky mostrando las instrucciones para verificar la cuenta.
Sube este archivo como te dicen, y con eso habrás verificado la cuenta también.

Una vez que hayas creado ese archivo, visita la URL en tu navegador, comprueba que puedes ver el valor, que tiene que tener una forma como did:plc: y un código de números y letras, y de ser así, pulsa el botón de verificar para comprobar tu identidad.

Ten en cuenta que Bluesky podría verificar periódicamente tu identidad, así que no recomendaría que quitases el archivo ni que borrases el registro DNS, por lo que pudiese pasar.

¿Para qué sirve Docker?

Quizá hayas escuchado hablar de Docker alguna vez. Se trata de una tecnología que promete permitir ejecutar aplicaciones y programas de ordenador en un lugar conocido como contenedor. A menudo lo usan para ejecutar aplicaciones de red que se ejecutan en servidores, pero en realidad puedes usarlo en tu propio ordenador personal para instalar programas como bases de datos, o aplicaciones alojadas que tengan interfaz web, de forma rápida y limpia.

Docker facilita el uso de cgroups

Docker se aprovecha de una tecnología presente en el núcleo Linux denominada cgroups. Esta tecnología permite limitar la cantidad de recursos que recibe un proceso en Linux, como el tiempo de CPU que recibe, la cantidad de RAM que puede usar, o incluso directorios de sistema a los que puede entrar.

Lo normal en tu ordenador es que cuando ejecutes un programa, éste tenga acceso a todos los recursos de la máquina. Eso significa que un proceso podría empezar a buscar el último decimal de pi y empezar a consumir un porcentaje importante de CPU que deje hambrientos otros programas en ejecución. O podría reservar suficiente memoria RAM como para dejar tiritando tu sistema. O entrar a cualquier directorio del disco duro para el que tenga permiso y consultar información.

Con cgroups, precisamente puedes aislar un proceso o grupo de procesos para limitar la cantidad máxima de CPU y memoria RAM que van a poder utilizar, e incluso separar la interfaz de red que usan para acceder a internet o cambiar su directorio raíz, de tal forma que sólo vean una porción pequeña del sistema de archivos para impedir que se metan donde no toca. También se puede limitar el uso de ciertas llamadas a sistema, como la posibilidad de que tengan su propia tabla de procesos en ejecución, para que no puedan ver qué procesos tienes en ejecución en tu máquina.

Y Docker precisamente lo que hace es aprovecharse de estas características y crear una forma conveniente de iniciar aplicaciones metidas en uno de esos cgroups. Para ello lo primero que hace es utilizar imágenes de Docker, que puedes ver precisamente como el conjunto de archivos que definirán el sistema de archivos virtual y limitado que verá Docker. Aquí es donde meterás los archivos que permiten funcionar tu programa. Esas imágenes también llevan metadatos, como el usuario con el que se debe ejecutar la imagen, o las variables de entorno a definir al lanzar el programa.

Una vez que tengas una imagen, puedes pedirle a Docker que la lance, creando un contenedor. Un contenedor es una ejecución de una imagen, y se llama así porque, al igual que un contenedor en un barco que transporta mercancías, todo lo que hay dentro de un contenedor está aislado de otros contenedores, y a menudo apilado en un gran sistema lleno de contenedores.

Pero una cosa muy simple que tienes que tener en cuenta es que lanzar un contenedor es simplemente una forma un poco bruta de pedirle a GNU/Linux que ejecute un programa, manteniendo el proceso bajo unas condiciones muy concretas y limitadas como las que contaba antes. La ventaja es que la operación es mucho más simple porque no hay que interactuar con cgroups a mano.

Docker no es virtualización

Es importante diferenciar Docker y cgroups de la virtualización. Cuando virtualizas, lo que haces es usar un programa que simula ser todo un ordenador completo, creando una máquina virtual. Hoy en día las máquinas virtuales son más rápidas gracias al uso de hipervisores y a cierta colaboración que ofrece la CPU del ordenador, pero esencialmente cuando instalas una distribución GNU/Linux en una máquina virtual, estás ejecutando un segundo kernel, simulado dentro de un programa que corres dentro de tu ordenador.

Pero al usar Docker, compartes el kernel de tu ordenador o servidor. En otras palabras, el mismo kernel que atiende las llamadas a sistema en los programas que ejecutas dentro de Docker es el que utilizas en tu máquina. Esta es la razón por la que si pruebas a ejecutar uname dentro de un contenedor de Docker en el que ese comando esté disponible, siempre va a reportar la misma versión del núcleo Linux que la que use tu máquina física, incluso aunque te lleves esa imagen de Docker a otros entornos con otras versiones de núcleo Linux.

Un contenedor de Docker puede pararse y reanudarse mediante operaciones como start y stop. Sin embargo, cuando detienes un contenedor de Docker, no lo estás congelando en el tiempo, que es lo que harías con una máquina virtual si suspendes su ejecución. Cuando detienes un contenedor de Docker verdaderamente detienes todos los procesos en ejecución, que se reanudarán la siguiente vez que se encienda el container.

Los overlays: el punto fuerte de Docker

Uno de los puntos fuertes de Docker es su sistema de overlays. Un overlay es una capa del sistema de archivos que se pone encima de otra, para agregar o quitar cosas.

Por ejemplo, si tienes un sistema de archivos en tu imagen de Docker que contiene 3 archivos, pero luego le pones encima usando un overlay otro sistema de archivos que contiene 2 archivos, al final solaparán y acabarás teniendo una imagen con 5 archivos. Puedes usar los overlays para agregar, modificar y quitar archivos.

Esto es fuerte porque permite crear imágenes reusables. Por ejemplo, existe una imagen de Docker llamada debian:slim, que contiene una instalación pequeña de Debian, con una shell y las herramientas mínimas para usar Docker. Mediante overlay, puedes agregar en otra imagen tus propios archivos de programa a la imagen debian:slim, y el resultado es una imagen que tiene Debian y tus archivos.

Lo normal es que una imagen final de Docker tenga varios overlays, a medida que se usan capas. Por ejemplo, la capa con Debian, la capa con un entorno de ejecución, y la capa con los archivos de programa. A este sistema, se le debe sumar también el volumen que guarda los archivos locales cuando ejecutas una imagen de Docker, para asegurarse de que algunas cosas no se pierdan cuando se detiene la ejecución de una imagen.

¿Por qué se usa tanto Docker?

Docker ha sido adoptado como una tecnología clave moderna para la industria informática y de servidores precisamente por la conveniencia a la hora de fabricar y compartir las imágenes.

Típicamente, instalar un programa en un servidor requería instalarlo a mano y configurarlo. Pero a veces, ese programa depende de paquetes que faltan en el gestor de paquetes del servidor, o pide versiones de una librería que son diferentes de las que aporta el sistema operativo.

Al usar una imagen de Docker, congelamos todo el entorno en el que se va a ejecutar el programa, y eso incluye tanto la distribución, como la versión de la distribución, como otras bibliotecas. Podrías usar la imagen de Docker de Fedora para fabricar una imagen de Docker de un programa que se ejecute sobre Fedora, y como la imagen ya trae todo lo necesario para arrancar el userland de Fedora, luego ejecutarlo en un entorno Docker en Debian, y funcionará de forma transparente.

¿Para qué sirve AUR?

Como ya he mencionado en el pasado, las distribuciones GNU/Linux están conectadas a un repositorio de paquetes, que es un bazar donde puedes encontrar todo tipo de programas para tu ordenador, que instalas con un comando a través de tu gestor de paquetes en la terminal, o mediante una herramienta gráfica como KDE Discover o GNOME Software.

Sin embargo, una de las características típicas de los repositorios de las distribuciones GNU/Linux es que el software que encuentras ahí tiene cierto grado de oficialidad. Los paquetes han sido probados para asegurarse de que funcionen en la versión de GNU/Linux que estés utilizando, y además se proporcionan pre-compilados para que sea tan rápido como descargar el paquete y extraer.

Como alternativa, AUR es el Arch User Repository. Es otro repositorio, pero en este caso contiene paquetes preparados por la comunidad. Cualquier persona puede contribuir con su propio paquete, y lo normal es que esos paquetes están mantenidos por personas que no formen parte de Arch, sino que sean también participantes de la comunidad. En algunos casos puede ser la misma persona que fabrica el programa, y típicamente será alguien que, en cualquier modo, al menos lo utilice.

¿Qué diferencia hay?

Los paquetes que encuentras en AUR se diferencian de los que te vas a encontrar en el repositorio central de tu distribución por al menos las siguientes diferencias.

  • La principal diferencia es que en el caso de AUR, lo que te descargas es la receta, también conocida como PKGBUILD. Este es el script que se usa para fabricar un paquete desde el código fuente. El proceso es casi automático, porque puede descargar las dependencias necesarias para fabricar el paquete, y como resultado obtienes un archivo de tipo .pkg.tar.zst, que puedes instalar con Pacman. En otras palabras: mientras que del repositorio principal de Arch te descargas un paquete pre-compilado en los propios servidores de Arch, y por lo tanto, más rápido de instalar, con AUR el paquete lo compilas tú en tu máquina, usando tiempo y recursos.
  • Otra es que no tiene por qué estar probado que funcione. En otras palabras: un paquete que instalas con pacman desde los repositorios centrales de Arch debería instalar y ejecutar bien, porque alguien ha probado que funcione. Sin embargo, los repositorios AUR se basan en la vigilancia continua de la comunidad. Lo normal es que un paquete se instale bien, pero a veces el programa puede cambiar y las instrucciones para fabricar el paquete pueden quedar obsoletas. Por suerte, modificar un PKGBUILD tampoco es muy dificil, así que si tienes experiencia manteniendo shell scripts, es incluso posible que puedas corregirlo con tu editor de textos tras leer las instrucciones actualizadas, y así poderlo instalar.
  • Y la otra más importante, es que no son paquetes verificados. Esto es importante en temas de seguridad. Cuando instalas un paquete desde el repositorio central de Arch Linux, no sólamente está pre-compilado en los servidores de Arch. Al prepararse en un entorno especial y restringido, y al llevar firmas, es más dificil que se cuele malware en un paquete (no imposible, como aprendimos durante el drama de XZ, aunque por suerte en el caso de Arch Linux era imposible ejecutar la parte de código comprometida). Sin embargo, en el caso de AUR, las recetas las usas bajo tu propia responsabilidad.

Con esto no quiero decir que usar AUR sea malo. Al contrario, AUR es parte de lo que hace que la experiencia de usar una distribución basada en Arch sea tan buena. Hay una comunidad activa que se ocupa de proporcionar instrucciones de integración de casi cualquier paquete que se te ocurra, para que puedas instalarlo en tu sistema usando el gestor de paquetes, con las ventajas que eso aporta, en vez de tener que hacerlo a mano usando métodos que no permiten al sistema luego administrar los archivos del programa.

¿Es seguro usar AUR?

AUR es a menudo seguro de usar. Por lo general, si instalas un paquete popular desde AUR, incluso si no sabes verificar estas cosas, puedes asumir que colectivamente la comunidad está bastante pendiente de estos temas, y que hay suficientes ojos mirando que no pase nada raro.

Sin embargo, como digo, esto pasa con los paquetes populares. Existen muchos paquetes que no tienen votos, ni popularidad, y en algunos casos, ni siquiera maintainer. El maintainer es la persona que está a cargo de un paquete de AUR. Cualquier persona puede volverse maintainer, y aunque lo normal es que lo mantenga una persona que lo usa activamente (y que por eso tiene interés en que la receta funcione bien), podría ocurrir que un paquete quede huérfano (es decir, sin maintainer) y alguien se aproveche de la situación para adoptarlo y modificarlo de forma maliciosa. Esto pasó en 2018 con un paquete que instalaba Acrobat Reader para Linux y un par de paquetes más. La persona involucrada en la publicación del malware fue expulsada del sistema AUR, pero pegó un buen susto.

Lamentablemente, la interfaz web de AUR tampoco te dice si un paquete ha cambiado de maintainer hace poco, aunque en mi opinión, debería. Sí es verdad que a veces los comentarios de un paquete en la página web pueden contener información interesante. No está de más revisar antes de instalar nada y confirmar que no hay nadie dando la voz de alarma.

En cualquier caso, dado que AUR no aporta ningún tipo de garantías, dejándote a ti como responsable de lo que sea que instales, cuando te animes a usar AUR, hay un par de consejos que deberías tener en cuenta.

  1. Uno es que, aunque tengas un buen frontend para instalar paquetes desde AUR (yo uso yay en este momento, por ejemplo), deberías aprender a usar el comando makepkg, por lo que pueda pasar. Todas las instalaciones de Arch Linux traen makepkg, que es el programa que sirve para convertir una receta en formato PKGBUILD a paquete compilado que puedes instalar con Pacman.
  2. Otro es que leas la receta que estás a punto de ejecutar. En otras palabras, que revises el contenido del archivo PKGBUILD antes de fabricar la receta. Lo normal es que tu frontend te pregunte si quieres hacer esto. Por ejemplo, yay lo hace. No deberías saltarte este paso, y deberías inspeccionar como mínimo que no se descarguen archivos sospechosos desde otras fuentes que no sean la de la página del programa oficial. Cuantos más conocimientos tengas de shell scripting, mejor. Si sabes cómo fabricar scripts, deberías leerte el script completo y vigilar que entre los pasos de compilación del paquete o de instalación no haya algo sospechoso.

Cómo funcionan las cuentas verificadas en Mastodon

Hay dos formas principales de «verificar» la cuenta. Aquí con verificar, la definición a la que me refiero es «cómo saber que estás siguiendo una cuenta oficial y no una cuenta impostora», o incluso «cómo verifico mi propia cuenta de Mastodon».

La drástica: ten tu propia instancia

La primera solución por lo general va a estar reservada, o bien para grandes instituciones, o bien para personas con mucho conocimiento técnico. Pero aun así es bueno conocerla porque te permite saber que la cuenta que estás siguiendo es la oficial.

Consistiría en usar Mastodon desde una instancia separada que forme parte del dominio de esa web o institución, en vez de desde mastodon.social o desde una instancia más central. Por ejemplo, un subdominio de la página web.

Os voy a poner un ejemplo muy simple. La cuenta de Mastodon de la Comisión Europea es @EUCommission@ec.social-network.europa.eu. ¿Cómo sabemos que es la oficial? Porque termina en .europa.eu, que es la web oficial de la Unión Europea. Es imposible que sea una cuenta impostora porque para poder haber instalado Mastodon en una web que termine por .europa.eu, lo ha tenido que hacer alguien que ya administre la red de la Unión Europea en primer lugar.

Lamentablemente, es probable que este barco ya haya partido, si bien es lo que los impulsores del fediverso hubiesen querido. Imagina un periódico que montase sus cuentas para las secciones de su periódico (deportes, última hora, noticias…) en una instancia de Mastodon instalada en @mastodon.miperiodico.com. Sabrías que es la cuenta oficial porque termina en el nombre de ese periódico.

Verificar la cuenta con una web o un blog: estos son los pasos

La segunda solución es más simple y además fácil de implementar para cualquier persona, y funciona con cualquier cuenta de Mastodon, esté en el servidor que esté. Todo lo que necesitas es poseer una web o un blog, por el que la gente tal vez ya te conozca. Por ejemplo, la web oficial de tu marca o producto, o el blog donde escribes una columna periodística.

Tienes formar un pequeño bucle: en tu web tienes que poner un enlace a tu cuenta de Mastodon, y en tu cuenta de Mastodon tienes que poner un enlace a tu web. Como la web es tuya, la única persona que podría decir que esa es tu cuenta de Mastodon eres tú, por lo que tiene que ser tu cuenta verdadera.

Una captura de pantalla muestra una biografía de Mastodon con una cuenta verificada.
Así es cómo se ve una cuenta verificada en Mastodon.

Para poder hacer esto, el enlace tiene que tener en su código HTML un atributo especial llamado ref con el valor me. Lo más sencillo es que te vayas primero a las opciones de Mastodon. En Preferencias, vas a Perfil desde el menú de la izquierda, y luego vas a la pestaña Verificación. Allí, verás las instrucciones de verificación. Todo lo que tienes que hacer es copiar el código HTML con el enlace que te ofrece y ponerlo en tu web. Puedes cambiar el texto del enlace por lo que quieras, pero es importante que haya un enlace apuntando a tu perfil de Mastodon, y que en el HTML del enlace aparezca rel="me".

Un pantallazo muestra las opciones de verificación de Mastodon.
Opciones de verificación de Mastodon.

Una vez hayas hecho eso, regresa a las Preferencias de Mastodon, pero esta vez quédate en la sección Editar perfil de las opciones de Perfil. Tendrás que agregar de algún modo un enlace a tu web en alguno de los campos que hay en la sección Metadatos de perfil. La Etiqueta da igual, pero lo importante es que pongas un enlace a tu web como Contenido de alguno de los metadatos.

Un pantallazo muestra los metadatos de perfil.
Metadatos de perfil.

La razón por la que te he propuesto que hagas primero el paso de agregar el enlace a tu web, es porque cuando guardes tu perfil, si hay enlaces en los metadatos, Mastodon los comprobará en el momento. Al haber hecho eso antes, verá el enlace y por lo tanto marcará tu cuenta como verificada satisfactoriamente.

Activar Backports en Debian 12

Debian Backports es un repositorio que contiene algunos paquetes selectos tomados de una versión en desarrollo de Debian, que han sido recompilados para que se puedan instalar en una versión anterior de Debian.

El problema de Debian (si es que se le puede llamar problema), es que cuando va a salir una nueva versión, congelan los repositorios. Esto quiere decir que a partir de ese momento, si alguno de los programas que hay en el repositorio recibe una actualización significativa, no va a actualizarse la versión del programa que hay en el repositorio.

Imagina que a los dos meses de salir una versión de Debian se publica la siguiente versión de GIMP o de Inkscape. Por muchas novedades que veas en internet, vas a tardar un par de años en verlas en Debian, porque el paquete del repositorio continuará siendo una versión más antigua. Cuando haces apt upgrade, todo lo que instalas son correcciones de fallos y mejoras de seguridad.

Algunos paquetes pueden optar a ser adaptados para que se pueda instalar una versión más reciente. A modo de ejemplo, si bien en Debian 12 normal, la versión de LibreOffice es la 7.4, la que hay en Backports es, en el momento de escribir esto, la 24.8. Hay una diferencia de dos años entre una versión y otra.

Para activar estos repositorios, si tienes en tu máquina Synaptic, puedes abrirlo, y luego ir al menú Configuración > Repositorios. Pulsa sobre el botón Nuevo (New) para crear un nuevo repositorio, y en la configuración del mismo introduce lo siguiente en los campos:

  • Deja el desplegable como Binario (deb)
  • URI: http://deb.debian.org/debian
  • Distribución: bookworm-backports
  • Sección(es): main
Captura de pantalla de Synaptic
Cómo configurar Backports desde Synaptic

Luego pulsa OK para guardar los cambios, y recarga los repositorios cuando te invite a hacerlo.

Si prefieres hacerlo por la terminal, crea un archivo en /etc/apt/sources.list.d con un nombre que termine en .list con un editor de textos. Por ejemplo, crea un archivo llamado /etc/apt/sources.list.d/bookworm-backports.list. Dentro de ese archivo, pon lo siguiente:

deb http://deb.debian.org/debian bookworm-backports main

Después de guardar los cambios, ejecuta apt update para refrescar los repositorios.

Para instalar un paquete, ten en cuenta que los paquetes de Backports tienen una prioridad menor que los del sistema central. Eso significa que, ante la duda, Debian instalará siempre el paquete que hay en el repositorio principal de Debian antes que el que hay en el repositorio de Backports.

Si quieres instalar un paquete mediante Backports, tendrás que pedirlo explícitamente en el momento de instalarlo. Vamos a poner un ejemplo con Emacs, ya que es un paquete que está en Bookworm-Backports. Si únicamente hicieses apt install emacs, instalarías la versión 28.2, que es la que hay en Bookworm.

Captura de pantalla de Emacs

Para instalar la versión de Bookworm-Backports, que es la 29.4 ahora mismo, cuando uses APT ponle también el parámetro -t bookworm-backports. Por ejemplo, en este caso instalaría Emacs como:

apt install -t bookworm-backports emacs

En teoría, también puedes ponerle al final del nombre del paquete la terminación /bookworm-backports. Sin embargo, he apreciado que a veces esto muestra mensajes de error, porque si ese paquete depende de otros que proceden de Backports, no los va a instalar.

Una vez haya hecho eso, Emacs 29.4 estará instalado en el sistema.

Captura de pantalla de Emacs

Cómo recuperar la contraseña de tu cuenta en Ubuntu 24.10

He revisado las instrucciones para asegurarme que son compatibles con Ubuntu 24.10. Ponte que un día enciendes tu ordenador y por lo que sea no logras pasar de la pantalla de inicio de sesión en Ubuntu porque has olvidado la contraseña. Por ejemplo, puede que sea una partición a la que entras una vez cada muchos meses. Esto es lo que tendrías que hacer.

Lo que vas a hacer va a ser entrar en modo recuperación. Es un tipo de arranque especial que se usa para reparar errores en el sistema. Llegar hasta este menú a veces es complicado, y hay que pulsar muchos botones, así que te recomiendo que primero leas los siguientes párrafos antes de tocar el ordenador, para que puedas prepararte.

Para entrar en el modo recuperación antes tienes que lograr ver en tu ordenador una pantalla como esta:

Pantalla de inicio de GRUB.
Menú de arranque GRUB.

Si tienes más de un sistema operativo instalado en tu sistema (por ejemplo, tienes Windows y Ubuntu), es probable que, de hecho, la veas siempre que enciendes el ordenador. Sin embargo, si no recuerdas haberla visto, tal vez sea porque tu sistema la esconde para encender más deprisa.

Si no recuerdas haber visto esta pantalla, vas a tener que pulsar una tecla mientras el ordenador se enciende para forzar que aparezca. La tecla normalmente es la Escape, pero en algunos ordenadores antiguos puede ser la Mayúsculas. No te preocupes. Si no funciona y vuelves a la pantalla de contraseña de Ubuntu, puedes reiniciar y volverlo a intentar.

Cuando pulses esa tecla, pueden pasar varias cosas.

Una, sería rara, pero es que entres al menú de configuración de la placa base de tu ordenador (lo que tradicionalmente se ha venido llamando el menú BIOS). No te interesa estar aquí, porque ese menú es para cambiar cosas como el orden de los discos duros, la velocidad del ventilador, la memoria… Sal del menú como corresponda en tu placa base. La próxima vez que enciendas el sistema, espera unos segundos antes de empezar a pulsar Escape o Mayúsculas, para que el ordenador no se piense que intentas abrir el menú.

Otra cosa que puede pasar, es que veas una pantalla como esta, donde sólo se ve grub>. A lo mejor hasta varias veces, debido a que has mantenido pulsada la tecla Escape lo suficiente. Si ves esta pantalla, escribe normal y pulsa Enter. Deberías acceder al menú, aunque en mis experimentos algunas veces puede que salte directamente al arranque de Ubuntu. Reinicia y vuelve a intentarlo.

Consola interactiva de GRUB mostrando el prompt.
Si ves esta consola que dice grub, escribe normal y pulsa Enter.

Cuando veas la pantalla que nos interesa, que es la que te mostraba antes, lo primero que quiero que hagas es pulsar las teclas Abajo y Arriba del teclado. La razón es que, a menudo, esta pantalla lleva un temporizador que arranca el sistema automáticamente si no haces nada, y al pulsar una tecla lo cancelarás para que puedas tomarte tu tiempo.

Pulsa las teclas Abajo o Arriba, y selecciona desde el menú la opción Advanced options for Ubuntu. Luego pulsa Enter para activarla. Se abrirá un submenú donde debes volver a usar las teclas de dirección para seleccionar alguna opción que termine en (recovery mode), y luego pulsa Enter para iniciar el sistema así.

Menú de inicio de GRUB con la opción "recovery mode" activa.
Esta es la opción que te debe interesar.

Después de un arranque caótico, deberías acabar viendo una pantalla con fondo rosa-morado y este mensaje.

Pantalla de inicio del menú de recuperación de Ubuntu.
Menú de recuperación de Ubuntu

Tendremos que hacer lo siguiente. Primero, hacer que se puedan modificar archivos sobre el disco. Para ello, utiliza la tecla Abajo para desplazarte hasta la tercera fila, la que dice dpkg, y pulsa Enter. Esto mostrará un mensaje que diga algo como: "Continuar remontará el sistema de archivos / en modo lectura/escritura y montará cualquier otro sistema de archivos definido en /etc/fstab. ¿Quiere continuar?", al que debes responder que sí pulsando Enter.

El objetivo es que el disco se monte en modo escritura, de modo que podamos cambiar la contraseña para poder usarla en el próximo reinicio. Realmente no pretendemos hacer nada con dpkg, es solamente una excusa para que cambie el disco; aunque a cambio, ahora al menos sabes que no tienes paquetes rotos en tu sistema.

Aparecerán varios mensajes por pantalla. Esto es un proceso normal. Simplemente, espera a que diga "Finalizado, ahora pulse Intro", y entonces… pulsa la tecla correspondiente.

Regresarás al mismo menú. Ahora pulsa varias veces la tecla Abajo hasta seleccionar la entrada que dice root, y pulsa Enter. Esta es la opción para iniciar una consola de superusuario en tu ordenador. Es como haber entrado siendo root directamente, sin tener que introducir la contraseña.

Aparecerá un mensaje que diga "Pulsa Enter para mantenimiento". De nuevo, pulsa Enter. Con esto activarás una shell. Todo lo que tienes que hacer ahora es escribir el siguiente comando: passwd, luego un espacio, y luego el nombre de tu cuenta de usuario. Por ejemplo, si tu cuenta de usuario es paquita, escribirías:

passwd paquita

Te preguntará por la nueva contraseña. Escríbela despacio para no cometer errores, y luego pulsa Enter. Te pedirá que la escribas una segunda vez, para confirmar que no has cometido faltas de ortografía. Vuélvela a poner, y pulsa Enter. Verás un mensaje que dice passwd: contraseña actualizada correctamente.

Es posible que si la contraseña que escribes es demasiado corta, veas un mensaje que dice CONTRASEÑA INCORRECTA: La contraseña tiene menos de 8 caracteres. Sin embargo, como estás usando el modo de recuperación y estás en una consola de superusuario, te dejará continuar igualmente.

Con este procedimiento hecho, sólo queda reiniciar el sistema, escribiendo reboot, y ya deberías tener acceso al sistema usando la nueva contraseña que acabas de establecer.

Dos formas de habilitar sudo para una cuenta en GNU/Linux

Hoy en día, lo normal al instalar GNU/Linux en un sistema es que la primera cuenta que se configura durante la instalación esté considerada como cuenta administradora. Con el comando sudo puede identificarse para confirmar que realmente al otro lado del teclado está la persona que dice estar y no un impostor, y así ejecutar comandos o cambiar opciones que requieren permisos elevados porque introducen cambios al funcionamiento del sistema operativo, como instalar programas nuevos.

Sin embargo, ¿qué hacemos cuando queremos darle estos permisos a otra cuenta? Por ejemplo, en un entorno de trabajo grande donde tengamos varias personas que puedan administrar un sistema. No querríamos que toda la administración de la máquina caiga sobre una misma persona en una gran empresa. Tal vez haya varias personas para administrar los servidores e instalar comandos, según se pongan de acuerdo.

En ese caso, lo que tendremos que hacer es convertir una cuenta de usuario en administradora. Este es un proceso casi chamánico que requiere la intervención de otra cuenta que ya sea administradora, para darle la bienvenida a la nueva cuenta al club. Sin embargo, la forma en la que se hace este proceso depende un poco de la instalación.

El grupo de sudoers

Por lo general, hoy en día casi cualquier distribución GNU/Linux utiliza un grupo de usuarios para identificar a estas cuentas. Así, al agregar o quitar personas del grupo, se les puede dar o revocar estos permisos sin involucrar más configuración.

Este grupo llevará uno de los dos nombres. Históricamente, el grupo se denominaba wheel. Existen varias teorías sobre el origen de este nombre, ninguna posiblemente importe en este momento. Lo clave es que, a pesar de ser el nombre usado en el UNIX tradicional, muchas distribuciones GNU/Linux continúan usando este nombre a día de hoy. Red Hat y Arch Linux, por ejemplo. Esto incluye derivadas: Fedora, Manjaro, EndeavourOS…

Sin embargo, en el caso de Debian, el nombre de este grupo es sudo. Esto es importante porque también afecta a todas las distribuciones que emanan de Debian. Así, distribuciones como Ubuntu o Linux Mint también usan sudo como nombre de este grupo.

Una vez identifiques el nombre del grupo, deberás agregar al usuario que quieras dar permiso de superusuario a este grupo. En el caso de las distros que tengan un script groupadd, podrías usar ese script. Sin embargo, por lo general se da por hecho que el programa alternativo usermod es casi universal y que permite agregar a un usuario a un grupo con la siguiente invocación de terminal:

sudo usermod -aG grupo usuario

No te olvides de poner los flags -aG. El primero sirve para agregar grupos en vez de sustituirlo. Más te vale no olvidar ponerlo, o podrías borrar los grupos a los que pertenezca la cuenta en este momento. El segundo parámetro sirve para especificar precisamente esos grupos. grupo será wheel o sudo según el tipo de distribución que uses, y usuario es el nombre de la cuenta que quieres agregar.

Por ejemplo, para meter a julian al grupo de administradores en Debian, usaríamos:

sudo usermod -aG sudo julian

Y para agregar a laura al grupo de administradores de Fedora, usaríamos:

sudo usermod -aG wheel laura

Para los casos más exagerados: modificar manualmente el archivo sudoers

El archivo sudoers guarda la configuración de sudo. Es importante modificar este archivo utilizando el comando visudo, para que tras editarlo se valide. La razón de esto es que si el archivo /etc/sudoers tiene errores, es posible que sudo deje de funcionar. visudo se ocupará de avisarte si está mal configurado antes de cerrar sesión, potencialmente bloqueando el sistema.

Para modificar este archivo, generalmente basta con escribir lo siguiente en una terminal para abrir el archivo con tu editor por defecto en estos casos (nano, vim…):

sudo visudo

La forma más rápida de agregar una cuenta a este archivo es incorporando una línea que contenga lo siguiente:

[usuario] ALL=(ALL:ALL) ALL

La razón por la que hay que escribir tantas veces la palabra ALL es compleja de contar ahora y no viene al caso, pero lo podría dejar para el futuro. También puede que aprendas algo al respecto si miras el manpage que define este archivo, con man 5 sudoers.

Por ejemplo, para agregar manualmente a julian como sudoer, podrás agregar lo siguiente a tu archivo de configuración:

julian ALL=(ALL:ALL) ALL

Sin embargo, en cualquier caso, generalmente es más flexible si agregas todo un grupo de usuarios y luego usas usermod para agregar y quitar personas de un grupo.

Para permitir a todo un grupo utilizar sudo, puedes usar un formato parecido, pero poniendo un símbolo de porcentaje como prefijo. Es decir, algo como esto:

%[grupo] ALL=(ALL:ALL) ALL

Es raro que no esté, pero debería haber una línea en tu archivo de configuración que tenga este formato:

%sudo ALL=(ALL:ALL) ALL

Esta es la línea que permite a cualquier cuenta que forme parte del grupo sudo ejecutar cualquier comando del sistema como superusuario.

¿Grupos o edición manual?

Sobre qué es mejor, diría que el grupo. Es más flexible, no te obliga a editar el archivo sudoers manualmente, que siempre trae riesgos, y es más rápido. Además, un grupo te permite hacer cosas como dar permisos para leer o escribir en archivos, lo que también permite a esa cuenta poder conceder o restringir el acceso a logs y otros archivos relacionados.

Sin embargo, existen algunas situaciones donde puede venir bien editar manualmente el archivo sudoers. Este archivo es realmente complejo y puede usarse para permitir cosas como limitar qué comandos puede ejecutar una cuenta mediante sudo, e incluso permitir que una cuenta que no sea administradora pueda ejecutar algunos comandos concretos. Esto tiene casos de usos específicos, como permitir que una cuenta pueda ejecutar ciertos comandos sin darle acceso global a toda la máquina.

¿Para qué sirve sudo? Lo esencial a saber para administrarlo de forma segura

El modelo de seguridad de las distribuciones Linux y de UNIX en general, se basa en tener una cuenta administrativa, denominada root, que tiene acceso completo a la máquina y que puede cambiar toda la configuración del sistema; y cuentas locales que no tienen tantos permisos para que en el día a día se pueda usar de forma segura el sistema sabiendo que ni por accidente este se podría comprometer.

Incluso aunque seas la única persona que usa tu ordenador personal, este modelo de seguridad resulta útil, porque requiere que seas consciente cuando vas a cambiar ajustes cambian el funcionamiento del sistema operativo. Así evitas por accidente desinstalar un paquete esencial para que funcione la máquina, como el cargador de arranque. Incluso impedirá que ejecutes por accidente un script malintencionado (por ejemplo, un código que hayas descargado de internet sin leer antes de ejecutar) que trate de hacer cosas maliciosas que puedan dañar tu máquina, como borrar el directorio /usr.

Con sudo, forma corta de super user do, puedes hacer el salto de una cuenta local a una cuenta privilegiada. Por ejemplo, para ejecutar el comando privilegiado systemctl stop networking, que detendría la red, necesitarás elevar tus privilegios, para evitar que por accidente desconectes un servidor. Necesitas anteponerle la palabra sudo, y entonces al ejecutar sudo systemctl stop networking ejecutarías ese comando de forma privilegiada.

Para adquirir esos privilegios, debes estar en una lista de usuarios autorizados. Así podrás elegir quiénes pueden realmente ejecutar esos privilegios. Un administrador de un laboratorio podría estar en la lista de usuarios autorizados para preparar los ordenadores de sus estudiantes antes de una clase, pero los estudiantes podrían quedar fuera de la lista para evitar que ejecuten sudo y hagan de las suyas.

Para confirmar que realmente eres tú, sudo te pide por lo general que escribas tu contraseña antes de lanzar el comando. De este modo, verifica tu identidad. Y si en cualquier caso escribes bien la contraseña de tu cuenta, pero los administradores de tu sistema han decidido que no debes estar en la lista para ejecutar comandos privilegiados, no te va a dar permiso, mostrándote el famoso mensaje El usuario no está en el archivo sudoers; este incidente será reportado.

Por lo general sudo recuerda tu presencia durante unos minutos para que no tengas que volver a escribir la contraseña si vuelves a ejecutar inmediatamente otro comando que empiece por sudo, pero en su forma general, deberías asumir que cuando trates de ejecutar un comando privilegiado con sudo, te va a pedir la contraseña para ver que realmente eres tú y no otra persona entrando en tu ordenador porque te has dejado el portátil desbloqueado cuando has ido a por un café o al baño en un lugar con más personas.

La forma de configurar esta lista de usuarios es modificando el archivo /etc/sudoers. Y la forma correcta de hacerlo, es mediante el programa visudo, usando el comando sudo visudo. El comando visudo abre inmediatamente el archivo /etc/sudoers con tu editor de textos de terminal favorito, como Vim o Emacs, y te permite modificar su contenido. Sin embargo, cuando guardes y cierres el archivo, visudo inmediatamente validará que el archivo sea correcto, y te avisará de errores si está mal configurado.

La razón por la que debes usar visudo en vez de modificar manualmente el archivo /etc/sudoers es, porque si cometes un error en ese archivo, podrías dañar el funcionamiento de sudo. Y en sistemas donde no haya una forma alternativa de recuperar el control (por ejemplo, en esas distros GNU/Linux que directamente desactivan el inicio de sesión como root), dañar sudo podría suponer que bloquees tu ordenador. visudo siempre validará que el archivo esté correcto, y sólo guardará tus cambios si están bien y si no hay manera de bloquear el sistema.

Evidentemente, para usar visudo necesitarás ser un usuario privilegiado, así que la invocación completa es sudo visudo. Así evitamos que una persona que no tenga permisos trate de modificar la lista de usuarios privilegiados, que es algo que rompería completamente el sistema de seguridad. Solamente alguien que tenga permisos suficientes debería poder modificar la lista.

De todos modos, hay formas de configurar sudo para que se pueda dar permisos privilegiados a un usuario para ejecutar únicamente comandos concretos. De este modo, podrías darle permisos a un usuario, físico o automatizado, para que ejecute comandos como sudo systemctl restart docker, pero que a la vez le falten permisos para ejecutar otros comandos como sudo poweroff. También existen forma de configurar sudo para que ciertas cuentas de usuario o ciertos comandos no pidan contraseña.

Ejecutar comandos en el arranque de GNU/Linux con systemd

Si tienes que ejecutar un comando cuando se enciende el ordenador, como iniciar manualmente un servicio o hacer un ajuste sobre un driver, puedes orquestarlo con systemd.

En este ejemplo vamos a ver cómo ejecutar un comando, como un script, cuando se enciende el ordenador. El objetivo es que durante el proceso de arranque, se invoque el comando; por ejemplo, que si el comando es un script que debe escribir algo en un archivo, lo haga. Para ello, nos estaremos apoyando en systemd, y crearemos una unidad personalizada que ejecute ese comando durante el arranque.

Esto contrasta con otras formas de ejecutar programas al encender el ordenador, como ponerlo en el autostart de nuestro entorno de escritorio o agregarlo al .bashrc, de que se hará durante el proceso de arranque, así que normalmente se ejecutará mientras el ordenador está iniciando, antes siquiera de que pongamos la contraseña.

Creamos un script de apoyo

En este ejemplo, fabricaré un script auxiliar que será el que defina lo que quiera que ocurra cuando se encienda el ordenador. Para este caso particular, haré que mi script escriba algo sobre uno de los archivos del directorio /sys, una operación típica para modificar el funcionamiento de alguno de los dispositivos de hardware del ordenador.

Crearé un script denominado update-led.sh con el código de mi script:

$ cat > update-led.sh <<EOF
> #!/bin/bash
> echo 1 > /sys/devices/platform/leds/leds/red:standby/brightness
> EOF
$

Como este script requiere ser ejecutado como root, lo pondré en una ubicación más propia del sistema, como /usr/local/sbin, y lo haré ejecutable:

sudo mv update-led.sh /usr/local/sbin/update-led.sh
sudo chmod +x /usr/local/sbin/update-led.sh

Si ahora queremos probar que el script funciona correctamente, lo podríamos ejecutar si es que es una opción en primer lugar.

Invocar el script al arrancar el sistema

Ahora definiré una unidad de systemd que todo lo que tiene que hacer es invocar este script que he fabricado. Para ello crearé un archivo en el directorio /etc/systemd/system, que es donde se colocan las unidades personalizadas de systemd. El archivo podrá tener el nombre que más nos interese, pero deberá terminar por .service. El nombre que le demos, quitando el .service, será como luego será ejecutado mediante systemctl start y similares.

Este archivo tendrá que contener lo que describo más abajo, cambiando las siguientes líneas de interés:

  • Description será cambiado por un comentario sobre qué hace el comando, para identificarlo semanas después, por ejemplo, «arreglo para el driver de red» o «ejecuta rm -rf a .cache».
  • ExecStart será cambiado por la ruta completa al script que hayas creado en tu caso.
[Unit]
Description=Activar el LED

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/update-led.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Este servicio está declarado como oneshot. systemd es bueno ejecutando programas que tienen que estar en marcha todo el tiempo mientras el ordenador está encendido, como el sistema de audio, un agente SSH o GPG… Sin embargo, en este caso le pediremos que ejecute el comando una vez y ya está. La instrucción RemainAfterExit también se usa para señalizar que si el comando termina, todo estará correcto.

Finalmente le pediremos a systemd que active esa unidad, ejecutándola a partir del próximo reinicio. Supongamos que el archivo de unidad se denomina update-led.service, pues el nombre a activar será update-led:

sudo systemd enable update-led

Y opcionalmente si queremos probarlo ya, podemos pedirle que ejecute el script inmediatamente con:

sudo systemd start update-led

¿Qué es un archivo ISO y por qué se usan para descargar GNU/Linux?

La gente más joven no recordará esto, pero hubo una época en la que los ordenadores traían un lector de discos ópticos. Aunque ya no estén de moda, siguen siendo representados cada vez que usamos un archivo .iso.

El disco compacto es un formato que empezó a investigarse a finales de los 70 y que derivó en la creación del CD de audio digital en 1982 o del CD-ROM en 1984. Con el CD de audio digital se hacía posible cuantizar la música como ceros y unos para que tuviese una mejor fidelidad. Y con la creación del CD-ROM se pudo guardar cualquier tipo de datos binarios. Sin embargo, el formato siguió desarrollándose durante las siguientes décadas, y para 1995, IBM y Phoenix presentaron la extensión «El Torito» (no es broma, ese es su nombre), que permitía colocar el código máquina de un programa en un CD-ROM que se podía ejecutar al encender el ordenador. Había nacido el Boot CD.

Por supuesto, uno de los primeros beneficiarios del Boot CD fue Microsoft Windows. Ya no era necesario que el ordenador tuviese MS-DOS para ejecutar el .EXE con el instalador de Windows, porque el propio CD-ROM traía el programa de arranque que permitía leer el resto del disco e iniciar el proceso de instalación. Sin embargo, los cargadores de arranque libres tardaron poco en adquirir también la posibilidad de hacer esto mismo. GRUB puede instalarse sobre un CD, haciendo que cuando se encienda el ordenador, se ejecute GRUB, que además sabe como leer el resto del disco para así cargar una copia del kernel, un disco RAM para arrancar el entorno vivo, o el programa de instalación.

Al principio, Slackware o Red Hat prensaban sus propios CD-ROM. Es decir, adquirías físicamente un CD-ROM de Red Hat o de Slackware en su propia caja y lo instalabas igual que se hacía con Microsoft Windows. Sin embargo, para facilitar el acceso y no tener que depender de poder adquirir una copia física de GNU/Linux, en cuanto las velocidades de internet y los tamaños de los discos duros lo permitieron, empezaron a poner esos mismos CDs en sus páginas web y FTP usando los archivos .iso.

¿Qué es un archivo .iso?

Un archivo .iso es una copia digital exacta de los sectores que forman parte de un CD de datos, como un CD-R o un CD-ROM. Dicho de otro modo, si un lector de CD lee cada una de las pistas de datos que hay en uno de estos discos, y copia los ceros y los unos en un archivo, crea una copia digital del CD. Luego un quemador de CD puede hacer el proceso inverso, llevando los ceros y los unos contenidos en ese archivo sobre la superficie de un CD-R. El resultado es que si descargamos de internet un archivo .iso, tenemos en nuestro ordenador el molde digital que nos permite fabricar copias de un disco compacto de datos.

¿Por qué se les llama .iso? Una vez se inventó el formato CD-ROM en 1983, permitiendo guardar unos y ceros aleatorios, fue necesario crear el formato de archivos que debía llevar el CD-ROM. Después de todo, por entonces la informática ya estaba empezando a llegar a más gente y ya existía la noción de archivo. Los datos binarios hay que agruparlos en archivos, igual que ocurre con un diskette o con un disco duro. Dado que un CD-ROM tiene unas características únicas que no tiene ningún otro medio de almacenamiento de la época, se inventó un sistema de archivos nuevo específico para los CD-ROM. Este formato fue finalizado en 1988 y se le llamó ISO 9660.

Así que de ahí el nombre. Si tomamos un CD quemado con el formato ISO y creamos una copia digital, será interesante ponerle como extensión al archivo .iso para identificar que se trata de una copia digital de ese CD, igual que existen otras tantas extensiones para identificar un tipo de archivo.

¿Por qué se sigue usando el .iso?

En primer lugar, por retrocompatibilidad. Muchos ordenadores viejos siguen teniendo lector de CD o de DVD, y para instalar una distribución GNU/Linux en ellos, el paso de quemar un CD o un DVD con el contenido de un archivo .iso sigue siendo lo más simple. Al quemar un archivo .iso, copiamos los bytes que definen el disco, haciendo que se pueda usar exactamente igual que se lleva haciendo toda la vida.

En segundo lugar, porque puedes acabar con el CD, pero no puedes acabar con «el CD». Hoy en día, lo normal es transferir el contenido de un archivo .iso a un disco USB, como un pendrive. Tiene ventajas: un pen no se raya y no deja de funcionar a los pocos usos, y es más ecológico porque se puede borrar y volver a grabar otra ISO sobre él (aparte de cualquier otra cosa). Lo bueno es que los archivos .iso que encontramos en internet hoy en día son híbridos. El programa de arranque está colocado de tal modo que si se copia a un CD, funciona, pero que si se copia a un pendrive, también lo hace de una manera que permite al ordenador encontrarlo y lanzarlo.

En tercer lugar, por integridad. Podríamos vivir en un mundo en el que las distribuciones GNU/Linux se distribuyesen como un .zip que luego es copiado sobre un pendrive. Sin embargo, cabe la posibilidad de que se haga mal y que por lo tanto se creen copias corruptas. Al compactar toda la imagen de disco en un archivo opaco que no se puede modificar se evitan errores que pueden provocar que el proceso de creación de un medio de arranque GNU/Linux sea más complicado de llevar a cabo.

passwd: todo lo que debes saber

Un tutorial para poder utilizar el comando passwd que puede ayudar a las personas que recién llegan a UNIX.

El post en el que explicaba cómo recuperar la contraseña de Debian me dio la idea de profundizar más en el funcionamiento del comando passwd, ya que tiene varias formas de operar según cómo se llame a este comando.

passwd sirve para cambiar la contraseña de una cuenta. Si ejecutas el comando normal en tu terminal, por ejemplo, passwd, bajo tu propia cuenta de usuario solo podrás cambiar tu propia contraseña. Sin embargo, el auténtico poder de este comando está en invocarlo como superusuario (es decir, como root). Cuando la cuenta root ejecuta este comando, puede cambiar cualquier contraseña: la suya o la de otra cuenta.

Cuando invoques passwd con una cuenta normal, lo primero que hará es pedirte la contraseña actual, y así lo veremos cuando dice Current password. Aquí tenemos que meter la contraseña que tenemos ahora mismo. Esto es una medida de precaución para asegurarse de que un script automatizado no trata de cambiar nuestra contraseña sin permiso.

Ten en cuenta que cuando escribas una contraseña, no la verás por pantalla. Igual que pasa con el comando sudo, no habrá feedback. Ni si quiera unos asteriscos. Cuando empieces a escribir la contraseña, hazlo con determinación y no te detengas a medio de teclearla, para no cometer errores.

Después de escribir la contraseña actual y pulsar Enter, el sistema nos preguntará por la contraseña nueva que queramos establecer. En total la tendremos que escribir dos veces, porque nos pedirá confirmación. Así, si la hemos escrito mal, nos avisará para no bloquear nuestro sistema.

$ passwd
Current password:
New password:
Retype new password:
passwd: password updated successfully

Sobre esto, varias notas extra:

  • La configuración del sistema operativo podría traer reglas adicionales que pueden impedir que se guarde la contraseña. Por ejemplo, es posible que rechace cambiar la contraseña si no tiene un número mínimo de caracteres, o incluso si no junta alguna mayúscula o dígito.
  • Es posible que si pones la misma contraseña como nueva contraseña, te lo rechace y te diga que es la misma contraseña de todos modos.

Por último, el auténtico poder de este comando está en lanzarlo como root. Si lo hacemos podremos cambiar la contraseña de cualquier usuario si lo especificamos como parámetro al lanzar el comando. En este caso, de hecho, passwd no preguntará por la contraseña, lo que le convierte también en el comando ideal para usar si tenemos que recuperar una contraseña en concreto:

# passwd ana
New password:
Retype new password:
passwd: password updated successfully

Recuperar la contraseña de superusuario de Debian 11

¿Te has olvidado de la contraseña que le diste a la cuenta de root en tu instalación de Debian? Suele pasar si no la usamos con mucha frecuencia. Te cuento cómo usar el modo rescate para reestablecerla.

Cuando se configura Debian, una de las primeras cosas que pregunta el sistema operativo es qué contraseña le pretendemos dar a la cuenta de superusuario, es decir, a la cuenta root. Otras distribuciones GNU/Linux han decidido restringir el uso de la cuenta root y facilitar que la distribución se instale teniendo una cuenta superusuario como primera cuenta. No es el caso de Debian, que sigue dándole mucha importancia a la cuenta de superusuario root, y que ni siquiera configura por defecto sudo en la cuenta principal cuando se instala el sistema.

Sin embargo, ¿qué hacer cuando no hemos utilizado en una larga temporada esa cuenta y nos hemos olvidado de su contraseña? ¿Cómo podemos reestablecer la contraseña de root en Debian 11? Vamos a ver qué opciones tenemos en este post.

El juego de ejecutar passwd como root

El objetivo es conseguir tener acceso a una shell root desde la que podamos ejecutar passwd. Este es un comando interesante de administración de sistemas UNIX que sirve para cambiar una contraseña. Cuando lo ejecutamos como root, nos permite cambiar la contraseña de cualquier cuenta del sistema.

Si ponemos passwd sin más cuando somos root, cambiaremos la contraseña de root. Tan fácil como esto. De modo que el objetivo de este juego será conseguir una shell de root con la que hacer el cambio de contraseña.

El caso más simple es si ya tienes montado sudo en tu ordenador. Si tu cuenta personal está configurada para poder utilizar sudo, no tienes que hacer nada más que ejecutar sudo su. Con esto, utilizarás tu propia contraseña para acceder a una shell de root.

workstation ~ $ sudo su -
[sudo] contraseña para dani: 
[root@workstation ~]# passwd
Nueva contraseña:

Sólo recuerda que:

  • Cuando teclees la contraseña, esta no será visible por pantalla, así que teclea con confianza y sin detenerte. Con esto evitarás problemas si estás escribiendo palabras y no te equivocarás.
  • Tendrás que escribir la contraseña dos veces y tiene que coincidir. Si la has escrito mal alguna de las veces, te avisará y tendrás que volver a empezar.

Entrar en modo rescate

Si no tienes montado sudo, doas ni nada parecido (cosa que deberías), no quedará otra que entrar en modo de rescate. Resulta sorprendente lo fácil que es arrancar GNU/Linux en modo rescate saltándose cualquier medida de protección, pero si el disco no está cifrado, técnicamente no hay nada que impida hacer esto.

Para entrar en un modo rescate que nos permita saltar la contraseña, todo lo que haremos será reiniciar el ordenador y pulsar e cuando estemos en la pantalla de elección de entorno.

Pantalla de GRUB en Debian 11.

Al pulsar la tecla e aparece el editor de arranque. Con esto podemos modificar los comandos que se ejecutan por GRUB para arrancar el sistema operativo. Por dar la nota, cuando seleccionamos una opción premarcada como Debian GNU/Linux en GRUB realmente ejecutamos todas las instrucciones que se están viendo ahí.

Todo lo que haremos ahora será desplazarnos hacia la línea que empieza por linux (la que empieza por linux /boot/vmlinuz...). Nos desplazamos al final de la línea (aquí puedes usar Ctrl + E para ir rápidamente al final de la línea). Después, borramos las últimas palabras (ro quiet) y en su lugar pondremos rw init=/bin/bash. En definitiva, la línea de linux tiene que quedar tal que así:

    linux    /boot/vmlinuz-5.10.0-19-amd64 root=UUID=... rw init=/bin/bash

Ten en cuenta que la versión del kernel que acompaña a vmlinuz puede cambiar. Además, he suprimido el UUID completo de mi disco porque será diferente al tuyo. Una vez lo hayas comprobado, pulsa Ctrl-X o F10 para arrancar el sistema.

linux /boot/vmlinuz-5.10.0-19-amd64 root=UUID rw init=/bin/bash
El aspecto de GRUB para arrancar en modo rescate

Cuando termine de cargar, verás una shell. Esta shell está conectada al disco duro, por lo que con esto ya tenemos una sesión root para poder ejecutar algunos comandos. Deberías poder comprobar que el disco duro está montado en modo escritura. Esto es algo que puedes hacer ejecutando el comando mount y comprobando si en la salida se incluye una línea que contenga tu partición y la raíz (/). En los flags de montaje debe salir la opción rw. Por ejemplo, en mi caso veo:

/dev/vda1 on / type ext4 (rw,relatime)

Esto es suficiente de por sí.

Como puedes ver en tu shell, root@(none) implicará que tenemos una shell de root. Con esto ya podemos ejecutar el comando passwd y establecer una nueva contraseña para la cuenta de superusuario:

root@(none):/# passwd
New password:
Retype new password:
passwd: password updated successfully
root@(none):/#

Una vez que hagas esto, reinicia tu ordenador. Posiblemente a la fuerza si tienes problemas para escribir reboot. Deberías comprobar que si ahora tratas de escribir la contraseña de superusuario (por ejemplo, usando el comando su), ya te la aceptará.