OBSD4* : wiki

Xenodm (gestionnaire d'affichage)

Xenodm est un gestionnaire de session X, faisant partie du système de base depuis OpenBSD 6.1 !

C'est un dérivé de xdm, purgé de beaucoup de codes, donc plus léger, et débarrassé de potentielles failles de sécurités :

Time has passed by and nowadays, xdm(1) is mainly used just to manage the local X server running on laptop or desktop machines. Moreover `XDCMP's security is weak (based on DES) and doesn't support IPv6 well. So it's time to retire it. So Xenocara is getting a “new” X Display Manager which will be called “xenodm”.

Xenodm is based on xdm source code. I've removed all support for XDMCP and other old cruft like ugly games with signals and setjmp(3)/longjmp(3) to set timeouts on potentially blocking operations. Another goal was to un-tangle the ifdef maze that supported various flavors of authentication methods, to only keep the BSDauth code used in OpenBSD.

(cf: http://undeadly.org/cgi?action=article&sid=20160911231712)

Le manpage correspondant : http://man.openbsd.org/xenodm.1

ATTENTION : Il est recommandé de ne pas utiliser xenodm avec l'environnement graphique Gnome3 ; utilisez gdm à la place !

Xenodm est constitué d'un ensemble de fichiers de configuration dont chacun a son rôle bien précis.

$ ls -al /etc/X11/xenodm/                                                                                                             
total 56
drwxr-xr-x  4 root  wheel   512 Oct  9 16:03 ./
drwxr-xr-x  7 root  wheel   512 Oct  4 05:43 ../
-rwxr-xr-x  1 root  wheel   525 Apr  1  2017 GiveConsole*
-rwxr-xr-x  1 root  wheel   392 Apr  1  2017 TakeConsole*
-rwxr-xr-x  1 root  wheel   232 Oct  9 15:59 Xreset*
-r--r--r--  1 root  bin    3669 Oct  9 15:59 Xresources
-r--r--r--  1 root  bin     433 Apr  1  2017 Xservers
-rwxr-xr-x  1 root  wheel  1466 Oct  9 15:59 Xsession*
-rwxr-xr-x  1 root  wheel   227 Oct  9 15:59 Xsetup_0*
-rwxr-xr-x  1 root  wheel   368 Oct  9 15:59 Xstartup*
drwx------  3 _x11  _x11    512 Aug 29 09:52 authdir/
drwxr-xr-x  2 root  wheel   512 Oct  9 15:56 pixmaps/
-r--r--r--  1 root  bin    1183 Oct  9 16:03 xenodm-config

Gestion du service

À moins de l'avoir activé lors de votre installation d'OpenBSD depuis la version 6.1, celui-ci ne sera pas actif par défaut !

  • Pour activer xenodm :
    # rcctl enable xenodm 
  • Pour démarrer xenodm :
    # rcctl start xenodm 
  • Pour arrêter xenodm :
    # rcctl stop xenodm 
  • Pour supprimer xenodm :
    # rcctl disable xenodm 

xenodm-config

Auto-connexion

Pour utiliser le mode auto-connexion, c'est-à-dire sans avoir à taper votre mot-de-passe pour entrer dans votre session, modifiez le fichier /etc/X11/xenodm/xenodm-config, pour y ajouter :

DisplayManager._0.autoLogin:    UserId

Cela signifie que vous êtes le seul utilisateur de votre machine informatique !
À oublier dans le contexte de multi-utilisateurs !

ATTENTION : du fait de ne pas avoir à taper votre mot-de-passe, toute personne peut utiliser votre ordinateur et entrer directement dans votre session, avec tous les risques que cela comporte : vols d'informations, modifications voire suppressions de documents, etc…

Xresources

Le fichier /etc/X11/xenodm/Xresources permet de modifier l'apparence du gestionnaire (couleurs, polices, textes, etc …).

Xsetup_0

Le fichier /etc/X11/xenodm/Xsetup_0 nous permet d'utiliser des binaires X, tels que xconsole (c'est la fameuse console de log qui s'affiche par défaut), xclock, display, etc …

Exemple :

#!/bin/sh
# $OpenBSD: Xsetup_0,v 1.1 2016/10/23 08:30:37 matthieu Exp $
if [ "$DISPLAY" = ":0" -o "$DISPLAY" = ":0.0" ]
then
       xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
fi

#sxpm OpenBSD.xpm &

- display permet, entres autres, d'avoir une image en fond d'écran … Exemple :

/usr/local/bin/display -window root /home/user/Images/Wallpapers/OBSD_From_Dark_to_the_Light.png

- qiv permet, entres autres, d'avoir un fond d'écran aléatoire, selon les options fournies Exemple :

/usr/local/bin/qiv -zr /home/user/Images/Wallpapers/* &

Cet exemple permet d'afficher une image de fond, aléatoirement, à chaque fois que xenodm est relancé. (qiv ne fait pas partie du système de base).

- xclock permet d'afficher une horloge … Exemple :

/usr/X11R6/bin/xclock -d -update 1 -render &

Pour fermer automatiquement l'horloge, on récupère son id - dans le fichier Xsetup_0, sous la ligne déclarant le binaire :

echo $! > /var/run/xclock.pid

et, on modifie le fichier /etc/X11/xenodm/GiveConsole :

if test -r /var/run/xclock.pid; then kill $(cat /var/run/xclock.pid); fi

GiveConsole

Le fichier /etc/X11/xenodm/GiveConsole a pour propos de traiter des instructions en sortie de xenodm ;-)

Autres informations