Comment fonctionne la session invité d’Ubuntu ?

Twitter Facebook Google Plus Linkedin email
closeCet article a été publié il y a 6 ans 6 mois 9 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées, les commandes ne sont peut-être plus valides.

Après avoir cherché en vain des détails déjà écrits (quelque soit la langue), c’est une petite investigation du fonctionnement de la session invité telle que proposée sur Ubuntu que j’ai faite pour répondre à une question d’un utilisateur débutant. Une question que je ne m’étais d’ailleurs jamais posé, et j’ai donc ressorti VirtualBox pour l’occasion.

La réponse est simple, c’est le gestionnaire de sessions qui s’en charge, en l’occurrence LightDM. Fait amusant, pour une fois, même écrit et maintenu majoritairement par des gens de Canonical, qui sont derrière Ubuntu, c’est celui qui est utilisé par Manjaro par défaut, en tout cas sur mon installation, et probablement par d’autres, puisqu’on trouve des ressources Debian dessus.

Attention, LightDM ne se charge que des sessions graphiques, et un tel composant n’est pas obligatoire dans l’absolu, seulement en mode multi-utilisateurs il rend pas mal de services. Et l’un d’eux, justement, c’est la possibilité de proposer une session invité.

Comment ça fonctionne ? En fait, il crée à la volée un utilisateur temporaire, à partir d’un squelette légèrement différent de celui des utilisateurs classiques « persistents », avec son propre dossier racine. Le dossier racine d’un utilisateur, sous Linux, sert à stocker l’intégralité des paramètres d’utilisation des logiciels propres à l’utilisateur. Si vous avez deux comptes différents sur la machine, chaque compte à son propre profil Firefox, ses propres raccourcis bureau, ses propres fichiers, etc. Ça concerne également l’agencement des icônes du « dock » Unity, cette barre latérale gauche, et les réglages concernant le gestionnaire de mises à jour, bref, toute la personnalisation que vous pouvez faire sur votre système.

Pour causer plus technique, le dossier racine de l’utilisateur temporaire est créé dans le dossier /tmp, qui sur Ubuntu, est un point de montage vers un « ramdisk ». Un ramdisk, c’est un disque virtuel, placé en mémoire vive, donc volatile (perdu dès qu’on éteint la machine ou qu’on le démonte). Plus précisément, le disque virtuel est monté avec le système de fichier tmpfs, qui permet justement de simplifier la création de tels disques virtuels. Leur taille correspond à celle de la mémoire vive.

ubuntu-guest-mountDès qu’on déconnecte de la session, LightDM n’a plus qu’à supprimer l’utilisateur et démonter le dossier. Lorsqu’on veut relancer une session invité, le même processus recommence, création à la volée de l’utilisateur et de son dossier home, lancement d’une session dessus (avec à nouveau les paramètres par défaut).

Si vous voulez modifier certains comportements de la session invité, une page en anglais du wiki Ubuntu vous donnera plusieurs pistes, je n’ai pas encore trouvé d’équivalent stricto-sensu de cette page en version française, mais celle du Wiki Ubuntu est particulièrement riche en détails divers et variés, certains étant même dédiés à une version d’Ubuntu. Faites-vous plaisir 🙂

 

le plus récent le plus ancien
Notifier de
antistress
Invité

Ça m’intéresse ! À l’époque j’avais demandé à Martin Pitt (qui oeuvre chez Ubuntu) si je pouvais faire marcher cette fonctionnalité sous Debian en installant simplement le paquet gdm-guest-session de Lucid et il m’avait gentiment répondu qu’il ne marchait pas tel que, qu’il fallait un patch pour gdm [1]. Mais du coup, si je comprends ce que tu écris, avec LightDM sous Debian GNOME je pourrais avoir cette fonctionnalité ?
[1] http://bazaar.launchpad.net/~ubuntu-desktop/gdm/ubuntu/annotate/head%3A/debian/patches/14_guest_session.patch