L'ensemble du concept et de l'implémentation de systemd a introduit de nombreux changements depuis qu'il a commencé à remplacer les anciens outils de démarrage et d'initialisation de SystemV. Au fil du temps, systemd a été étendu à de nombreux autres segments de l'environnement Linux.
Un service relativement nouveau, systemd-homed, étend la portée de systemd à la gestion des répertoires personnels des utilisateurs. La fonctionnalité applique uniquement l'accès des utilisateurs humains et restreint les utilisateurs du système dans la plage d'ID utilisateur (UID) comprise entre 0 et 999. Je soutiens le plan systemd pour conquérir le monde, mais je me demandais si c'était un peu excessif. Ensuite, j'ai fait quelques recherches.
Qu'est-ce que systemd-homed ?
Le service systemd-homed prend en charge la portabilité des comptes utilisateur indépendamment du système informatique sous-jacent. Un exemple pratique consiste à transporter votre répertoire personnel sur une clé USB et à le brancher sur n'importe quel système qui le reconnaîtrait et le monterait automatiquement. Selon Lennart Poettering, développeur principal de systemd, l'accès au répertoire personnel d'un utilisateur ne devrait être autorisé à personne à moins que l'utilisateur ne soit connecté. Le service hébergé par systemd est conçu pour améliorer la sécurité, en particulier pour les appareils mobiles tels que les ordinateurs portables. Cela semble également être un outil qui pourrait être utile avec les conteneurs.
Cet objectif ne peut être atteint que si le répertoire personnel contient toutes les métadonnées de l'utilisateur. Le fichier ~/.identity stocke les informations de compte utilisateur, qui ne sont accessibles à systemd-homed que lorsque le mot de passe est entré. Ce fichier contient toutes les métadonnées du compte, y compris tout ce que Linux doit savoir sur vous, de sorte que le répertoire personnel soit portable sur tout hôte Linux utilisant systemd-homed. Cette approche empêche d'avoir un compte avec un mot de passe stocké sur chaque système que vous pourriez avoir besoin d'utiliser.
Le répertoire personnel peut également être crypté à l'aide de votre mot de passe. Sous systemd-homed, votre répertoire personnel stocke votre mot de passe avec toutes vos métadonnées utilisateur. Votre mot de passe crypté n'est stocké nulle part ailleurs et n'est donc accessible à personne. Bien que les méthodes utilisées pour crypter et stocker les mots de passe pour les systèmes Linux modernes soient considérées comme incassables, la meilleure protection consiste à empêcher leur accès en premier lieu. Les hypothèses sur l'invulnérabilité de leur sécurité en ont conduit beaucoup à la ruine.
Ce service est principalement destiné à être utilisé avec des appareils portables tels que des ordinateurs portables. Poettering déclare:"Homed est principalement destiné aux machines clientes, c'est-à-dire aux ordinateurs portables et donc aux machines sur lesquelles vous vous connectez généralement depuis bien plus que ssh, si vous suivez ce que je veux dire." Il n'est pas destiné à être utilisé sur des serveurs ou des postes de travail qui sont attachés à un seul emplacement par des câbles ou enfermés dans une salle de serveurs.
Le service hébergé par systemd est activé par défaut sur les nouvelles installations, du moins pour Fedora, qui est la distribution que j'utilise. Cette configuration est par conception, et je ne m'attends pas à ce que cela change. Les comptes d'utilisateurs ne sont en aucun cas affectés ou modifiés sur les systèmes avec des systèmes de fichiers existants, des mises à niveau ou des réinstallations qui conservent les partitions existantes et les volumes logiques.
Création d'utilisateurs contrôlés
Outils traditionnels tels que useradd
créer des comptes et des répertoires personnels que systemd-homed ne gère pas. Par conséquent, si vous continuez à utiliser les outils de gestion des utilisateurs conventionnels, les répertoires personnels de vos répertoires personnels ne sont pas gérés par systemd-homed. C'est également le cas avec le compte utilisateur non root créé lors d'une nouvelle installation.
La commande homectl
Le homectl
La commande crée des comptes d'utilisateurs gérés par systemd-homed. Utilisation de homectl
La commande pour créer un nouveau compte génère les métadonnées nécessaires pour rendre le répertoire personnel portable.
Le homectl
La page de manuel de la commande contient une bonne explication des objectifs et de la fonction du service hébergé par systemd. Cependant, la lecture du homectl
La page de manuel est assez intéressante, en particulier la section Exemple. Sur les cinq exemples, trois montrent comment créer des comptes d'utilisateurs avec des limites spécifiques imposées, telles qu'un nombre maximal de processus simultanés ou une quantité maximale d'espace disque.
Dans une configuration non homectl, le /etc/security/limits.conf
fichier impose ces limites. Le seul avantage que je peux y voir est qu'il ajoute un utilisateur et applique les limites avec une seule commande. Avec la méthode traditionnelle, l'administrateur système doit configurer le limits.conf
fichier manuellement.
Limites
La seule limitation importante que je connaisse est qu'il n'est pas possible d'accéder à distance au répertoire personnel d'un utilisateur à l'aide d'OpenSSH. Cette limitation est due à l'incapacité actuelle de PAM à fournir un accès à un répertoire personnel géré par homectl
. Poettering semble douter que cela puisse être surmonté. Ce problème m'empêcherait d'utiliser systemd-homed pour mon répertoire personnel sur mon poste de travail principal ou même sur mon ordinateur portable. Je me connecte généralement à distance aux deux ordinateurs plusieurs fois par jour à l'aide de SSH, c'est donc un défi pour moi.
L'autre problème que je peux voir est que vous avez toujours besoin d'un ordinateur Linux pour une utilisation avec une clé USB avec votre répertoire personnel dessus, et que cet ordinateur doit fonctionner sur systemd.
C'est facultatif
Vous n'êtes pas obligé de l'utiliser, cependant. Je prévois de continuer à utiliser les outils traditionnels de gestion des utilisateurs pour soutenir mon flux de travail. La valeur par défaut pour les quelques distributions que j'ai un peu de connaissance, y compris Fedora, est que le service hébergé par systemd soit activé et en cours d'exécution. Vous pouvez désactiver et arrêter le service hébergé par systemd sans affecter les comptes d'utilisateurs traditionnels.
Réflexions finales
Les administrateurs système peuvent utiliser le service systemd-homed pour une forme sécurisée de gestion des répertoires personnels des utilisateurs itinérants. Il est utile sur les appareils portables comme les ordinateurs portables et peut être particulièrement utile pour les utilisateurs qui transportent une clé USB contenant uniquement leurs répertoires personnels pour la brancher sur n'importe quel ordinateur Linux pratique.
La principale limitation de l'utilisation de systemd-homed est qu'il est impossible de se connecter à distance à l'aide de SSH. Et même si le systemd-homed est activé par défaut, il n'affecte pas les répertoires personnels créés avec le useradd
commande. Je dois souligner que, comme de nombreux outils systemd, systemd-homed est facultatif. J'ai donc arrêté et désactivé le service.
Si j'ai besoin d'emporter mon répertoire personnel dans un package plus petit que mon ordinateur portable, je peux simplement utiliser une clé USB en direct avec un stockage persistant.
Ressources
- https://systemd.io/HOME_DIRECTORY/
- https://www.freedesktop.org/software/systemd/man/homectl.html
- https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html
- https://wiki.archlinux.org/title/Systemd-homed