Systemd cambiará el funcionamiento de su directorio de inicio de Linux

El directorio / home resaltado en un administrador de archivos gráfico de Linux.
isak55 / Shutterstock

El equipo que está detrás systemdquiere que adopte una nueva forma de administrar los directorios de inicio. Llamarlo «nueva forma» es ponerlo a la ligera: este es un verdadero cambio de paradigma para Linux. Aquí está todo lo que necesita saber systemd-homed, que probablemente llegará a una distribución de Linux cerca de usted.

No es ajeno a la controversia

Cuando systemdse introdujo en 2010, la comunidad de Linux se dividió en tres campos. Algunos pensaron que era una mejora y otros pensaron que era un diseño defectuoso que no se adhería a la filosofía Unix . Y a algunos no les importaba de una forma u otra.

La reacción de los oponentes fue fuerte, acalorada y, en algunos casos, casi fanática. Lennart Poettering , ingeniero de software de Red Hat  y co-desarrollador de systemd, incluso recibió amenazas de muerte.

En YouTube se publicaron canciones que abogaban por la violencia hacia Poettering y aparecieron sitios web que intentaban obligar a los usuarios de Linux a boicotear systemd. Su co-desarrollador, Kay Sievers , también recibió críticas y abusos, pero Poettering ciertamente se llevó la peor parte.

Sin embargo, en ocho meses, Fedora estaba usando  systemd. A finales de 2013,  Arch , Debian , Manjaro y Ubuntu se  habían trasladado a systemd. Por supuesto, la gloria del código abierto es que si no te gusta algo, puedes bifurcar el código fuente y hacer tus propias cosas con él. Las nuevas distribuciones, como  Devuan , que era una bifurcación de Debian, se crearon únicamente para evitar su uso systemd.

Su directorio $ HOME

En la estructura de directorios de Linux , todo lo que haces reside en el directorio «/ home». Sus archivos de datos, imágenes, música y todo el árbol del directorio personal se almacenan dentro de este directorio que lleva el nombre de su cuenta de usuario.

La configuración de sus aplicaciones se almacena en su carpeta de inicio en «directorios de puntos» ocultos. Si el primer carácter del nombre de un archivo o directorio es un punto (.), Está oculto. Debido a que estas configuraciones se almacenan localmente y no en un registro central, y debido a que una copia de seguridad de su directorio personal incluye estos archivos y carpetas ocultos, también se respaldan todas sus configuraciones.

Cuando restaura una copia de seguridad y enciende una aplicación, como LibreOffice o Thunderbird, busca su directorio oculto. También encuentra las preferencias de su documento, la configuración de la barra de herramientas y cualquier otra personalización. Thunderbird encuentra la información de su cuenta de correo electrónico y su correo electrónico. No tiene que pasar por el dolor de configurar lentamente cada aplicación.

Relacionado:  Cómo ejecutar aplicaciones de Linux en una Chromebook sin abrir una ventana completa de Linux

Puede usar lscon la -aopción (todos) para ver los archivos y directorios ocultos. Primero, escriba lo siguiente:

ls

Esto le muestra los archivos y directorios habituales. A continuación, escriba lo siguiente:

ls -a

Ahora, puede ver los archivos y directorios ocultos.

Está en una ventana de terminal.

Debido a que es la parte más valiosa de una instalación, es común que el directorio “/ home” se monte en su propia partición o en un disco duro separado. De esta forma, si algo catastrófico le sucede al sistema operativo o la partición en la que se encuentra, puede reinstalar su distribución de Linux o cambiar a una nueva. Luego, puede simplemente volver a montar su partición de inicio existente en «/ home».

Datos sobre usted

Su directorio personal no solo almacena sus datos; también almacena información sobre usted. incluyendo algunos atributos de su identidad digital. Por ejemplo, su directorio «.ssh» almacena información sobre las conexiones remotas que ha realizado con otras computadoras y las claves SSH que ha generado.

Otros atributos del sistema, como el nombre de usuario, la contraseña y la identificación de usuario única de su cuenta , se almacenan en otro lugar en archivos como «/ etc / passwd» y «/ etc / shadow». Cualquiera puede leer algunos de estos, pero otros solo pueden ser leídos por personas que tengan privilegios de root.

Así es como se ve el contenido del archivo «/ etc / passwd»:

cat / etc / passwd

cat / etc / passwd en una ventana de terminal.

Los cambios systemd-homed

La intención de los  systemd-homedcambios es proporcionar un directorio de inicio completamente portátil con sus datos y su identidad digital de Linux almacenados en él. Su UID y todos los demás mecanismos de identificación y autenticación se almacenarán solo dentro de su directorio personal.

Debido a su diseño de “todos los huevos en una canasta”, los directorios de inicio están encriptados. Se descifran automáticamente cada vez que inicia sesión y se vuelven a cifrar cada vez que se desconecta. El método preferido es utilizar el cifrado de disco de configuración de clave unificada de Linux (LUKS). Sin embargo, hay otros esquemas disponibles, como fscrypt .

Un registro de usuario de JavaScript Object Notation (JSON) almacena toda su información de identidad en un directorio llamado «~ / .identity». Está firmado criptográficamente con una clave que está fuera de su control.

Relacionado:  Cómo usar el comando chmod en Linux

El directorio de inicio de cada persona está montado en un dispositivo de bucle invertido, similar a la forma en que snapse monta una aplicación. Esto es para que el árbol de directorios dentro del directorio de inicio aparezca como una parte integrada del árbol de directorios del sistema operativo. El punto de montaje predeterminado es “/home/$USER.homedir” (“$ USER” se reemplaza por el nombre de la cuenta de la persona).

¿Cuales son los beneficios?

Debido a que su directorio de inicio se convierte en una encapsulación segura de todos sus datos, incluso podría tener su directorio de inicio en un dispositivo extraíble. Por ejemplo, puede usar una unidad USB para moverla entre las máquinas de su trabajo y de casa, o cualquier otra systemd-homed computadora.

Esto es lo que Poettering quiere decir con «un directorio personal completamente portátil». Dijo que incluso si no desea mover su directorio personal en un dispositivo portátil, esto facilitará las actualizaciones y migraciones y aumentará la seguridad.

Elimina lo que él llama «bases de datos complementarias», que contienen fragmentos de información importante sobre usted que Poettering cree que debería centralizarse. Los archivos “/ etc / passwd” y “/ etc / shadow” contienen información de autenticación y contraseñas hash. Sin embargo, también contienen información como su capa predeterminada, el campo Supervisor de operaciones integral de General Electric (GECOS).

Poettering dijo que estos metadatos  deben racionalizarse y almacenarse en grupos significativos dentro del registro JSON de cada persona en su directorio de inicio.

Administrar su nuevo $ HOME

El systemd-homedservicio se controla a través de la nueva homectl herramienta de línea de comandos .

Hay opciones para crear usuarios y directorios de inicio y establecer límites de almacenamiento para cada usuario. También puede establecer la contraseña, bloquear a alguien de su cuenta o eliminar una cuenta por completo. Los usuarios pueden ser inspeccionados y sus registros de usuario JSON también pueden leerse.

Las zonas horarias y otra información basada en la ubicación también se pueden configurar para cada usuario. Puede especificar el shell predeterminado e incluso establecer variables de entorno para que estén en un estado determinado cada vez que alguien inicie sesión.

Si busca en el directorio «/ home», verá systemd-homedentradas administradas que se parecen a lo siguiente, con «.homedir» adjunto al nombre de usuario:

/home/dave.homedir

Recuerde, esto es solo un punto de montaje. La ubicación del directorio de inicio cifrado real está en otra parte.

Relacionado:  Cómo verificar el kernel de Linux y la versión del sistema operativo

Limitaciones y problemas

systemd-homedes solo para uso en las cuentas de usuario de humanos. No puede manejar cuentas de usuario con un UID de menos de 1,000. En otras palabras, root, daemon, bin, etc., no se pueden administrar con el nuevo esquema. Siempre habrá una necesidad de las formas estándar de administrar usuarios. Por tanto,  systemd-homed no es una solución global.

Hay una conocida  trampa-22 que necesita ser resuelto. Como mencionamos anteriormente, el directorio de inicio de una persona se descifra cada vez que inicia sesión. Pero si alguien accede de forma remota a la computadora a través de SSH, no se puede hacer referencia a las claves SSH en el directorio de inicio porque el directorio de inicio todavía está encriptado hasta ese momento. persona inicia sesión. Por supuesto, se necesitan las claves SSH para autenticarse antes de poder iniciar sesión.

Este fue un problema reconocido por el systemd-homedequipo, pero no pudimos encontrar ninguna referencia sobre una solución para esto. Estamos seguros de que encontrarán una solución; sería una caída espectacular si no lo hicieran.

Digamos que alguien transporta su directorio personal a una nueva máquina. Si otra persona ya está utilizando el UID en la nueva máquina, se le asignará un nuevo UID automáticamente. Por supuesto, todos sus archivos deberán tener su propiedad reasignada al nuevo UID.

Actualmente, esto se maneja mediante una aplicación automática y recursiva del  chown -Rcomando . Esto probablemente se manejará de manera diferente en el futuro cuando se desarrolle un esquema más elegante. Este enfoque de mano dura no tiene en cuenta los demonios y procesos que se ejecutan como otros usuarios.

¿Cuándo está sucediendo esto?

Esto está sucediendo ahora. Los cambios de código se enviaron el 20 de enero de 2020 y se incluyeron en la compilación 245 de systemd, que se envió con Ubuntu 20.04 en abril de 2020.

Para comprobar qué versión tiene, escriba lo siguiente:

systemd --version

systemd --version en una ventana de terminal.

Sin homectlembargo, el comando aún no está presente. Ubuntu 20.04 usa un directorio tradicional / home y no usa systemd-homed.

Por supuesto, depende de las distribuciones individuales decidir cuándo incluirán y respaldarán  systemd-homedy homectl.

Por lo tanto, no hay necesidad de que nadie entre en modo horquillas y antorchas encendidas. Debido a que se mantendrán los métodos estándar para administrar usuarios y directorios de inicio, todos tendremos opciones.