Table des matières

Le système X-window

Configuration de X.org :

Login graphique (login manager)

A partir de la ligne de commande, pour lancer une fenêtre de login graphique (et choisir entre les différentes interfaces, kde, icewm, etc): gdm kdm mdkkdm … (en cas de “command not found”, penser à installer ces utilitaires !)

Changer de login manager

L'interface de kdm est la plus fonctionnelle. Si elle n'est pas installée par défaut, installer kdebase-kdm, puis mcc > System > Choose the display manager

Fichiers de configuration

cf répertoires /etc/X11/xdm/

Changer de login manager

# mcc System > Choose the display manager ….

Configurer le login manager

K > System > Configuration > Configure your Desktop > System > Login Manager NB : K > System > Configuration > Configure your Desktop, c'est le “KDE Control Center”

Configurer GDM à partir de 2008.0

Avant MDV 2008.0, le fichier de configuration de gdm est : /etc/X11/gdm/gdm.conf ou /etc/X11/gdm/custom.conf suivant les versions A partir de MDV 2008.0, ça se complique :

Par contre ce fichier est vide de toute configuration : il ne contient que la documentation sur gdm.conf !!! Il y a aussi un fichier /etc/X11/gdm/gdm.conf pratiquement vide

cp /etc/X11/gdm/custom.conf /etc/X11/gdm/custom.conf.original cp -f /usr/share/gdm/defaults.conf /etc/X11/gdm/custom.conf vi /etc/X11/gdm/custom.conf

Autologin et lancer automatiquement l'environnement graphique

Pour changer (supprimer) ces automatismes : # mcc Boot > Enable autologin and select the user to automatically log in Dans la fenêtre qui s'ouvre cocher/décocher les comportements désirés

Autre solution (à vérifier)

Dans /etc/inittab, changer : id:3:initdefault: en id:5:initdefault: (sur Mandrake en effet : 3 - Full multiuser mode 5 - X11)

Autre solution : supprimer le démarrage automatique en mode graphique

Editer /etc/X11/xdm/Xservers Mettre en commentaire (#) la ligne : :0 local /bin/nice -n -10 /usr/X11R6/bin/X -deferglyphs 16

Sessions X multiples

Depuis la session X de départ (display 0) : <Alt Ctrl Fn> (Fn est une des touches de fonction F1 à F6 pour accéder à la console texte à utiliser)

Pour passer d'une console à une autre :

cf. http://www.mandrakeuser.org/docs/xwin/xnet.html

Démarrer une interface graphique particulière :

startx /etc/X11/xdm/Xsession KDE -- :n
startx /etc/X11/xdm/Xsession Gnome -- :n
startx /etc/X11/xdm/Xsession IceWM -- :n
startx /etc/X11/xdm/Xsession WindowMaker -- :n
startx /etc/X11/xdm/Xsession Enlightenment -- :n
startx /etc/X11/xdm/Xsession BlackBox -- :n
startx /etc/X11/xdm/Xsession Sawfish -- :n
startx /etc/X11/xdm/Xsession XFce -- :n

Mode texte/mode graphique

# init 3 ⇒ texte # init 5 ⇒ graphique

Au boot avec Grub : “e” pour éditer la ligne de commande Pour booter en init 3, il suffit donc d'ajouter un “3” à la liste des options sur la ligne qui appelle le noyau (kernel=….. 3 ), de valider les modifs (Entrée) et d'appuyer sur “b” pour poursuivre le boot. Cette manip n'affecte que le boot présent et donc au prochain passage par grub, tout se passe par défaut (init 5)

Redirections

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html http://www.cpqlinux.com/redirect.html

3 descripteurs de fichier : stdin, stdout, stderr avec comme numéros stdout : 1 stderr : 2

XF86Config

Localisation : /etc/X11/XF86Config-4 (ou /etc/X11/XF86Config)

Changer de clavier (français, anglais, etc)

Section “InputDevice”

Option		"XkbLayout"	"fr"

Clavier us :

Option		"XkbLayout"	"us"

Terminaux X

http://www.tldp.org/HOWTO/XDMCP-HOWTO/

3 possibilités:

  1. Client unix → serveur unix : X -query …
    • le plus simple à mettre en oeuvre : tout ce qui est nécessaire est déjà présent et installé avec la plupart des distributions linux.
    • à éviter à travers un réseau non sécurisé.
  1. 2 - Client unix ou windows → serveur unix via SSH : NX
    • Idéal à travers un réseau non sécurisé
    • Nécessite un PC assez puissant (CPU 200 Mhz, 64 Mo RAM insuffisant ; 700 Mz, 96 Mo RAM parfait), avec un système d'exploitation installé sur le client (unix, windows ou même Mac OS X)
  1. Client (léger) unix → serveur unix : LTSP (Linux Terminal Server Project)

X -query ...

Soit S le serveur (machine sur laquelle on veut se connecter) et T le terminal :

Sur S

  1. Firewall :
    • ouvrir le port 177 en UDP
    • Relancer le firewall
  2. Vérifier quel est le xdm actif (# ps aux | grep dm)
    • Si c'est gdm :
      • gdmsetup (ou gdmconfig, c'est un alias) : autoriser XDMCP
      • On peut également modifier directement /etc/X11/gdm/gdm.conf (nouvellement /etc/X11/gdm/custom.conf) à la main : chercher [xdmcp] et changer “Enable=false” en “Enable=true”
    • Si c'est kdm :
      • éditer /etc/kde/kdm/kdmrc, chercher[Xdmcp] et remplacer Enable=false par Enable=true
    • Pour un autre “display manager”, voir la doc http://www.tldp.org/HOWTO/XDMCP-HOWTO/
  3. Relancer le display manager pour que la modification soit prise en compte : (# service dm restart)

Sur T

Problème

Si on n'obtient pas la mire de login (l'écran reste bleu) c'est sans doute que le port 177 est resté fermé. Vérifier avec nmap à partir de T :

[T]# nmap -s U -p 177 le_serveur
PORT    STATE  SERVICE
177/udp closed xdmcp
[Xdmcp]
Enable=true

Puis relancer le Display Manager : # service dm restart

On doit alors avoir à partir de T :

# nmap -s U -p 177 le-serveur
PORT    STATE         SERVICE
177/udp open|filtered xdmcp

Terminaux X, nx, freenx

http://www.nomachine.com/

Serveur nx (freenx)

- Sur le serveur, installer freenx (qui dépend de plusieurs autres programmes et les installe aussi). L'installation crée l'utilisateur système “nx” A la fin le message /usr/share/doc/freenx/README.urpmi s'affiche :

Pas de man, mais :
#   --help
	nombreuses commandes pour l'administration : intéressant, à lire absolument !
Info sur le paquetage dans /usr/share/doc/freenx-0.0.4.4/README.urpmi.

NB : pour connaître les dépendances de freenx : $ rpm -q –requires freenx

- Ajouter les utilisateurs qui pourront se connecter à ce serveur (utile ?) :

# nxserver --adduser utilisateur
# nxserver --passwd utilisateur
	et entrer le mot de passe de l'utilisateur

- Démarrer (redémarrer) le serveur :

# nxserver --restart

Fichiers de configuration

/etc/nxserver/ /etc/nxserver/node.conf (configuration du serveur)

Client nx

- Télécharger et installer le rpm disponible sur http://www.nomachine.com (NX client for Linux, free) - Copier la clé privée /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key qui est sur le serveur, dans un répertoire quelconque du client (répertoire /usr/NX/share/ ou répertoire /usr/NX/share/keys qui ont été créés lors de l'installation du client par exemple) avec un nom quelconque (du genre “NomDuServeur_client.id_dsa.key” par exemple) . S'il existe déjà une clé avec ce nom, l'écraser. - Démarrer le client nx nomachine :

$ nxclient		(ou nxclient --wizard)
et répondre aux questions pour se connecter.
En particulier, dans l'onglet "General", cliquer sur le bouton "Key..." et importer la clé que l'on vient de copier.
Autre solution (aussi simple, sinon plus) :
- se logger par ssh en root sur le serveur
- afficher la clé : cat /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key
- la copier/coller dans la fenêtre "DSA Key" et sauvegarder (bouton [Save])

Explication (http://www.marco-plaut.fr/article.php3?id_article=2) : Le client se connecte d'abord au serveur en tant qu'utilisateur “nx” avec cette clé (/usr/NX/share/client.id_dsa.key ou le nom qu'on lui a donné, dans le cas de freenx : /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key). Puis l'utilisateur s'identifie ensuite sur le serveur avec le nom d'utilisateur et le mot de passe déclaré au niveau du serveur.

On peut créer sur le client plusieurs fichiers de configuration pour se connecter à différents serveurs et avoir autant d'icônes correspondantes sur le bureau. Les fichiers de configuration sont dans : ~/.nx/config/<NomDuServeur>.nxs

Installation des versions 2 du client et du serveur


Nettoyage de versions précédentes (après les avoir désinstallées) # rm -rf /usr/NX $ rm -rf ~/.nx (pour supprimer les configurations utilisateur)

Coté serveur ++++++++++++ Télécharger (les rpm) : - nxclient - nxnode - nxserver et les installer dans cet ordre.

Nb : il est préférable d'installer freenx à la place de nxserver. 1 - contrairement à nxserver, freenx n'est pas limité à 2 connexions 2 - nxserver ne fonctionne pas sous MDV 2007 ( freenx-0.5.0-3.rev281.1mdv2007.0 fonctionne parfaitement avec les versions actuelles nxclient-2.1.0-9.i386.rpm nxnode-2.1.0-12.i386.rpm voir plus loin.

Vérifier que ces installation se sont bien passées : $ less /usr/NX/var/log/install Consulter http://www.nomachine.com/documentation/admin-guide.php

Messages à l'installation de nxnode : NX> 700 Install log is '/usr/NX/var/log/install'. NX> 700 Creating configuration in /usr/NX/etc/node.cfg. NX> 700 Inspecting local CUPS environment. NX> 700 Generating CUPS entries in: /usr/NX/etc/node.cfg. NX> 700 Installation of version: 2.0.0-100 completed.

Messages à l'installation de nxserver : NX> 700 Install log is: /usr/NX/var/log/install. NX> 700 Creating configuration file: /usr/NX/etc/server.cfg. NX> 723 Cannot start NX statistics: NX> 709 NX statistics are disabled for this server. NX> 700 Showing file '/usr/NX/share/documents/server/install-notices': ⇒ voir la notice d'installation dans /usr/NX/share/documents/server/install-notices

Démarrage/arrêt : # /etc/rc.d/init.d/nxserver start|stop|restart (status absent) ou : # nxserver –start|–stop|–restart|–status (voir toutes les possibilités avec nxserver –help) ou : # service nxserver start|stop|restart|status

nxserver/freenx et MDV 2007 ++++++++++++++++++++++++++ Impossible de se connecter sur une MDV 2007 sur laquelle est installé nxserver-2.1.0-13.i386.rpm. Message d'erreur : Info: Established X server connection. Info: Using shared memory parameters 1/2048K. Error: Connection with remote peer broken. Error: Please check the state of your network and retry. Session: Session terminated at 'Tue Nov 28 09:35:19 2006'.

Solution : installer freenx.

Coté client +++++++++++ Installer nxclient version 2 Lancer nxclient

- Dans l'onglet “General” Cliquer sur <Configure> Cocher “Remember my password” Cliquer sur <Key> Dans le fenêtre que s'ouvre (DSA key) effacer la clé qui s'y trouve et la remplacer par la clé privée qui se trouve sur le serveur dans le fichier /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key (cf. le messageg qui termine l'installation de freenx : Your user must install the key located at: “/var/lib/nxserver/nxhome/.ssh/client.id_dsa.key to log in.”)

- Dans l'onglet “Advanced” Cocher “Enable SSl encryption of all traffic”.

Pour ajouter un utilisateur à la base de données NX : # /usr/NX/bin/nxserver –useradd <utilisateur> La commande : # /usr/NX/bin/nxserver –usercheck <utilisateur> donne exactement le même résultat !

Remarque : toutes les installations de nx ont la même clé privée (/usr/NX/share/keys/server.id_dsa.key) : ne semble pas très sûr ! Changer les clés.

Ajouter une autre session


$ nxclient ou $ nxclient –wizard –wizard a l'avantage de proposer de créer une icône sur le bureau.

Modifier une configuration


Une fois la session créée le bouton [Configure] n'est plus accessible lorsqu'on clique sur l'icône. Pour y accéder, lancer nxclient.

Debugging


cf. http://www.nomachine.com/documentation/supp-request.php Fichier /etc/nxserver/node.conf : changer les valeurs par défaut des variables suivantes, et mettre : SESSION_LOG_CLEAN=0 SESSION_LOG_LEVEL=7 Voir les logs dans - /var/log/nxserver.log (vérifier que le “user” nx a le droit d'y écrire) modifier la “verbosité” dans NX_LOG_LEVEL= - grep NX /var/log/messages - ~/.nx/temp/<un numéro>

Problèmes - bugs :


Après installation de nxserver, dans /usr/NX/var/log/install +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NX> 200 Connected to address: 127.0.0.1 on port: 22 NX> 202 Authenticating user: nx NX> 208 Using auth method: publickey NX> 204 Authentication failed..

⇒ éditer /etc/ssh/sshd_config S'il y a un ligne “AllowUsers”, vérifier que nx y soit déclaré : AllowUsers toto bibi nx

NB : nx@127.0.0.1 est suffisant pour l'installation, mais bloque la connexion (message “Server not installed or NX access disabled”, voir plus loin.

NX> 202 Authenticating user: nx NX> 208 Using auth method: publickey NX> 204 Authentication failed. +++++++++++++++++++++++++++++ Solutions possibles : - Vérifier que l'utilisateur nx existe sur le serveur (userdrake) - Vérifier sur le serveur que nxserver tourne (# nxserver –status). - Sur le client (nxclient de nomachine) vérifier que la clé publique est la bonne : ⇒ lancer nxclient Configure > General dans l'encadré “Server” : Key > Import charger la bonne clé et la sauvegarder dans la configuration

Session 'serveur' failed due to connection timeout ++++++++++++++++++++++++++++++++++++++++++++++++++ Configure > Advanced > cocher “Enable SSL encryption of all traffic”

Pas de connexion possible sur nxserver sous MDV 2005 et message d'erreur : ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $ nxproxy nxproxy: symbol lookup error: nxproxy: undefined symbol: NXTransParseCommandLine (ou autre symbole non défini) Est obtenu sous MDV2005 alors que nxserver fonctionne sans problème sous MDV 2006.0 Cause probable : une erreur dans le rpm freenx. Alors que le paquet semble le même dans MDV 2005 et 2006 (freenx-0.4.4-1mdk) les dependances installées sont différentes : MDV2005 MDV2006 nxproxy-1.5.0-2mdk nxproxy-1.5.0-3mdk nxpagent-1.5.0-2mdk nxproxy-1.5.0-3mdk

Server not installed or NX access disabled ++++++++++++++++++++++++++++++++++++++++++ Soit (par exemple) 241.89.78.13 l'adresse IP du client, sur le serveur dans “/var/log/messages” : sshd[32108]: User nx from 241.89.78.13 not allowed because not listed in AllowUsers sshd[32108]: Failed none for invalid user nx from 241.89.78.13 port 41170 ssh2

Solution : Sur le serveur, éditer le fichier /etc/ssh/sshd_config - à AllowUsers, rajouter nx (AllowUsers toto nx) - décommenter “#PubkeyAuthentication yes” (il semble qu'en fait la valeur par défaut soit “no”)

Server not installed or NX access disabled ++++++++++++++++++++++++++++++++++++++++++ dans “/var/log/messages” : sshd[2774]: reverse mapping checking getaddrinfo … failed - POSSIBLE BREAK-IN ATTEMPT!

Le client qui veut accéder au serveur nx n'est pas déclaré dans un DNS.

Error: nxagent failed to start with: Unrecognized option: 1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NXCLIENT - Version 2.0.0-98 donne cette erreur avec freenx (NXSERVER - Version 1.4.0-44) Une solution peut-être ici : http://mail.kde.org/pipermail/freenx-knx/2006-September/004074.html Autres solutions : - réinstaller nxclient-1.5.0-113.i386.rpm - utiliser les versions “free” nxserver, nxnode et nxclient disponibles sur le site http://www.nomachine.com/download-package.php?Prod_Id=34

- freenx : +++++++++++ Tcl_Init failed: Can't find a usable init.tcl in the following directories:

  /usr/lib/tcl8.4 /usr/lib/tcl8.4 /lib/tcl8.4 /usr/library /library /tcl8.4.13

/library /usr/lib/tcl8.4

⇒ urpmi tcl et réinstaller freenx.

Mais ne semble pas fonctionner avec les versions 2 de NX : à éviter Utiliser plutôt “NX free editon for Linux” sur le site NX Nomachine.

1)
NB : :1 correspond au port 6001, :2 au port 6002 etc.