Chapitre 5. Problèmes à connaître pour Jessie

Table des matières

5.1. Prise en charge LDAP
5.2. État de sécurité des navigateurs web
5.3. ConsoleKit et les gestionnaires d'écran de connexion alternatifs
5.4. Changements et gestion du bureau GNOME
5.5. Modifications du bureau KDE
5.6. NetworkManager
5.7. perl-suid supprimé
5.8. Versions de Request Tracker
5.9. Changements de Bootlogd
5.10. /etc/mtab et _netdev
5.11. Transition de pdksh vers mksh
5.12. Compatibilité de Puppet 2.6 et 2.7
5.13. Implication du multiarch sur la chaîne de compilation
5.14. Backends SQL Cyrus SASL
5.15. Micrologiciel pour le réseau et pilotes graphiques

Parfois, des changements ont des effets de bord que nous ne pouvons pas raisonnablement éviter sans nous exposer à des bogues à un autre endroit. Cette section documente les problèmes que nous connaissons. Veuillez également lire l'errata, la documentation des paquets concernés, les rapports de bogues et les autres sources d'informations mentionnées en Section 6.1, « Lectures pour aller plus loin ».

5.1. Prise en charge LDAP

Une caractéristique des bibliothèques de cryptographie utilisées par les bibliothèques LDAP entraîne l'échec des programmes qui utilisent LDAP et essaient de modifier leurs privilèges effectifs lors de connexions vers un serveur LDAP utilisant TLS ou SSL. Cela peut provoquer des problèmes pour les programmes setuid sur des systèmes utilisant libnss-ldap comme sudo, su ou schroot et pour les programmes setuid qui effectuent des recherches LDAP comme sudo-ldap.

Il est recommandé de remplacer le paquet libnss-ldap par libnss-ldapd, une bibliothèque plus récente qui utilise un démon séparé (nslcd) pour toutes les consultations LDAP. Le remplacement de libpam-ldap est libpam-ldapd.

Notez que libnss-ldapd recommande le démon de cache NSS (nscd), dont vous devez évaluer l'intérêt avant de l'installer. Comme alternative à nscd, vous pouvez envisager unscd.

Des renseignements supplémentaires sont disponibles dans les bogues nº 566351 et nº 545414.

5.2. État de sécurité des navigateurs web

Debian 8 inclut plusieurs moteurs de navigateur web qui sont affectés par un flot continu de vulnérabilités de sécurité. Ce taux élevé de vulnérabilités ainsi que le manque partiel de prise en charge amont sous la forme de branches maintenues à long terme rendent difficiles les corrections de sécurité rétroportées. De plus, les interdépendances des bibliothèques rendent impossible la mise à niveau vers une nouvelle version. Par conséquent les navigateurs basés sur les moteurs webkit, qtwebkit et khtml sont inclus dans Jessie mais ne sont pas couverts par une prise en charge complète de la sécurité. Ces navigateurs ne devraient pas être utilisés sur des sites web non fiables.

Pour un usage général de navigation web, nous recommandons les navigateurs basés sur le moteur xulrunner de Mozilla (Iceweasel et Iceape) et Chromium.

Xulrunner a un historique de bon rétroportage pour des versions plus anciennes dans les cycles de publications précédents. Chromium — bien qu'il soit conçu à partir de Webkit — est un paquet sans dépendance qui sera conservé à jour en recompilant les versions actuelles de Chromium pour la distribution stable.

5.3. ConsoleKit et les gestionnaires d'écran de connexion alternatifs

ConsoleKit dans Debian 8 ne considère pas comme locales les sessions lancées avec startx ou les gestionnaires d'écran de connexion n'intégrant pas consolekit (par exemple, xdm ou slim), ce qui pourrait empêcher l'accès à certains périphériques.

Nous recommandons d'utiliser gdm3, kdm ou lightdm à la place.

5.4. Changements et gestion du bureau GNOME

Par défaut, certains outils d'accessibilité sont désactivés dans le gestionnaire d'écran de connexion GNOME (gdm3). Pour activer le zoom ou un clavier visuel, le plus simple est d'activer le dispositif d'accueil « shell ».

Pour ce faire, modifiez le fichier /etc/gdm3/greeter.gsettings et décommentez les lignes suivantes :

session-name='gdm-shell'

tout en commentant

session-name='gdm-fallback'

Veuillez noter qu'une carte 3D compatible est nécessaire − c'est la raison de la désactivation par défaut.

5.5. Modifications du bureau KDE

Le paquet knetworkmanager a été rendu obsolète et remplacé par plasma-widget-networkmanagement dans le nouvel espace de travail KDE Plasma.

Si vous utilisez l'application autonome knetworkmanager obsolète, vous devriez vous préparer à faire un peu de configuration manuelle après la mise à niveau. Vous pourriez avoir besoin d'ajouter manuellement plasma-widget-networkmanagement à votre panneau ou votre bureau.

De plus, si la connexion réseau doit fonctionner même sans appliquette pour network-manager, vous pourriez vouloir le régler en tant que « connexion système ».

5.6. NetworkManager

NetworkManager peut détecter si une interface réseau est gérée par ifupdown afin d'éviter les conflits, mais n'est pas capable d'en faire autant avec les autres programmes de gestion du réseau tels que wicd-daemon. Des problèmes et des comportements inattendus peuvent avoir lieu si deux démons gèrent la même interface lors d'une tentative de connexion réseau.

Par exemple, si wicd-daemon et NetworkManager sont tous les deux lancés, tenter d'utiliser le client wicd pour établir une connexion échouera avec le message d'erreur :

Échec de la connexion : mot de passe erroné

Tenter d'utiliser un client NetworkManager devrait également échouer avec le message :

NetworkManager n'est pas en cours d'exécution. Veuillez le lancer.

Il est recommandé aux utilisateurs de GNOME d'installer et d'essayer NetworkManager mais, s'ils le souhaitent, le démon NetworkManager peut être désactivé de façon permanente grâce à la commande suivante :

# update-rc.d network-manager disable

Après avoir désactivé le démon, il est recommandé d'examiner le contenu de /etc/resolv.conf. Ce fichier est utilisé pour indiquer les serveurs DNS pour la résolution de noms et le contenu de ce fichier pourrait avoir été remplacé par NetworkManager.

5.7. perl-suid supprimé

suidperl a été retiré en amont avec la version 5.12. Le paquet perl-suid qui était fourni dans Debian a donc été retiré également. Les solutions de remplacement incluent l'utilisation d'une simple encapsulation (« wrapper ») setuid en langage C pour exécuter un script Perl depuis un emplacement écrit en dur, ou un outil plus général tel que sudo.

5.8. Versions de Request Tracker

Si vous avez request-tracker3.8 sur votre système Squeeze, veuillez noter que ce paquet a été supprimé de Wheezy pour être remplacé par request-tracker4. Quelques étapes doivent être accomplies manuellement pour faire la mise à niveau de request-tracker3.8 vers request-tracker4 : veuillez installer request-tracker4 en parallèle de votre installation actuelle de request-tracker3.8 et consulter les notes d'installation et mise à niveau dans /usr/share/doc/request-tracker4/README.Debian.gz (section « Mettre à niveau de request-tracker3.8 vers request-tracker4 » [NdT: nommé « Upgrading from request-tracker3.8 to request-tracker4 » dans la note d'installation]).

Le même conseil s'applique si vous avez request-tracker3.6 ou d'autres paquets plus anciens venant de plus anciennes versions de Debian toujours utilisées : dans ce cas, il est recommandé de mettre à niveau étape par étape, en suivant les documents de mise à niveau appropriés.

5.9. Changements de Bootlogd

bootlogd a été déplacé de sysvinit-utils dans un paquet bootlogd séparé. Si vous souhaitez continuer à utiliser bootlogd, vous aurez besoin d'installer le paquet bootlogd. Veuillez noter que le fichier de configuration /etc/default/bootlogd et son option BOOTLOGD_ENABLE n'existent plus : si vous ne souhaitez pas exécuter bootlogd, supprimez le paquet bootlogd.

5.10. /etc/mtab et _netdev

Le fichier /etc/mtab, utilisé pour stocker la liste des systèmes de fichiers actuellement montés, a été remplacé par un lien symbolique vers /proc/mounts. Dans pratiquement tous les cas, cette modification rendra le système plus robuste puisque la liste ne peut jamais être incohérente. En revanche, si vous utilisez l'option _netdev dans /etc/fstab pour indiquer qu'un système de fichiers est un système de fichiers en réseau nécessitant une gestion particulière, cette option ne sera plus présente dans /proc/mounts après un redémarrage. Cela ne causera pas de problème avec les systèmes de fichiers en réseau standard tels que NFS, qui ne se base pas sur l'option _netdev. Les systèmes de fichiers non atteints par ce problème sont ceph, cifs, coda, gfs, ncp, ncpfs, nfs, nfs4, ocfs2 et smbfs. Pour les systèmes de fichiers qui utilisent _netdev pour se démonter correctement lors de l'extinction, par exemple en utilisant un NBD, un mtab statique est le seul moyen d'utiliser _netdev dans Wheezy. Si vous avez une telle installation, alors restaurez un /etc/mtab statique après la mise à niveau vers Wheezy en procédant comme suit :

  • Modifiez /etc/init.d/checkroot.sh et commentez ces lignes :

            if [ "$rootmode" != "ro" ]; then
                    mtab_migrate
            fi
    

  • Si vous avez redémarré le système et si /etc/mtab est maintenant un lien symbolique :

    # rm /etc/mtab
    # cp /proc/mounts /etc/mtab
    

    Rajoutez l'option _netdev en remontant les systèmes de fichiers affectés :

    # mount -o remount filesystem
    

    /etc/mtab sera complètement recréé au prochain redémarrage du système.

5.11. Transition de pdksh vers mksh

Le paquet pdksh (« Public Domain Korn Shell ») est supprimé de la distribution après Jessie car pdksh n'est plus maintenu (pas de développement actif depuis 1999).

Le paquet mksh (« MirBSD Korn Shell ») fournit son successeur ; il a évolué à partir de Public Domain Korn Shell et a été maintenu à jour avec la norme POSIX pour l'interpréteur de commandes. Dans Debian Jessie, pdksh est un paquet de transition utilisant lksh, une variante de mksh compilée avec des options de compatibilité afin de fournir un lien symbolique binaire pdksh. Ce binaire de compatibilité se comporte plus comme le Public Domain Korn Shell que comme l'actuel mksh. Néanmoins, étant donné qu'il contient des corrections de bogues modifiant son comportement, ce n'est pas un remplacement pur et simple. En conséquence, il vous est recommandé de changer vos scripts

#!/bin/pdksh

en

#!/bin/mksh

et de les tester. Si le test échoue, alors nous vous conseillons de corriger vos scripts. Si ce n'est pas possible, vous pouvez les changer en scripts

#!/bin/lksh

et les tester à nouveau. Ce test a plus de chances de réussir sans modifier votre code en profondeur. Cependant, gardez à l'esprit que le paquet de transition sera supprimé de Debian un jour ou l'autre.

Le binaire de compatibilité n'est pas adapté à l'utilisation interactive, donc vous devez, en tant qu'administrateur système, ajuster l'interpréteur de commandes de vos utilisateurs Korn Shell. Pour une interruption de service minimale, faites cela avant la mise à niveau du système d'exploitation : installez le paquet mksh manuellement et remplacez les interpréteurs de connexion et/ou interactifs des utilisateurs de pdksh par mksh. De plus, nous vous encourageons à copier /etc/skel/.mkshrc dans leur répertoire personnel : ce fichier fournit quelques fonctions telles que pushd, popd et dirs ainsi qu'un joli

PS1

(invite de commande).

5.12. Compatibilité de Puppet 2.6 et 2.7

Lors de la mise à niveau de Squeeze vers Wheezy d'un système géré par Puppet, assurez-vous que le puppetmaster correspondant utilise au moins la version 2.7. Si le maître fonctionne avec le puppetmaster de Squeeze, le système géré sous Wheezy ne sera pas capable de s'y connecter.

Une telle combinaison entraînera le message d'erreur suivant au lancement de puppet agent :

Could not retrieve catalog from remote server: Error 400 on SERVER: No support for http method POST
(« Impossible de récupérer le catalogue depuis le serveur distant : erreur 400 sur SERVEUR : pas de prise en charge pour la méthode http POST »)

Afin de résoudre ce problème, le puppetmaster doit être mis à niveau. Un maître en version 2.7 est capable de gérer un client en version 2.6.

5.13. Implication du multiarch sur la chaîne de compilation

L'introduction du multiarchitecture (telle que décrite dans Section 2.2.2, « Multiarchitecture ») modifie les chemins de certains fichiers, ce qui pourrait rendre fausses des suppositions faites par les composants de la chaîne de compilation. La chaîne de compilation de Debian a été mise à jour, mais les utilisateurs tentant de compiler ou d'utiliser des compilateurs externes peuvent avoir besoin de le savoir.

Quelques pistes pour contourner ces problèmes peuvent être trouvées dans /usr/share/doc/libc6/NEWS.Debian.gz et dans le rapport de bogue nº 637232.

5.14. Backends SQL Cyrus SASL

La configuration des backends SQL pour Cyrus SASL, telle que fournie dans le paquet libsasl2-modules-sql, a changé d'une configuration spécifique à une base de données (par exemple mysql) vers le greffon auxprop générique sql.

Les fichiers de configuration pour les applications utilisant SASL doivent être mis à jour, par exemple :

auxprop_plugin: mysql

devrait être remplacé par :

auxprop_plugin: sql
sql_engine: mysql

De plus, la requête SQL (si utilisée) nécessite de remplacer %u par %u@%r car user et realm sont maintenant fournis séparément.

5.15. Micrologiciel pour le réseau et pilotes graphiques

Certains pilotes matériels, dont les pilotes pour les cartes réseau (filaires ou sans fil), ainsi que le pilote pour les cartes graphiques ATI/AMD, nécessitent un micrologiciel chargeable afin de fonctionner correctement.

Ce micrologiciel est souvent non libre et n'est donc disponible que dans l'archive non-free, dans les paquets firmware-linux et autres.