Kapitel 5. Dinge, die Sie über Jessie wissen sollten

Inhaltsverzeichnis

5.1. LDAP-Unterstützung
5.2. Sicherheitsstatus von Webbrowsern
5.3. ConsoleKit und alternative Displaymanager
5.4. GNOME-Desktop-Änderungen und -Unterstützung
5.5. Änderungen am KDE-Desktop
5.6. NetworkManager
5.7. Änderungen an Bootlogd
5.8. /etc/mtab und _netdev
5.9. Der pdksh-nach-mksh-Übergang
5.10. Puppet 2.7 / 3.7 compatibility
5.11. Cyrus SASL SQL-Backends
5.12. PHP 5.6 upgrade has behavioural changes
5.13. Firmware für Netzwerk- und Grafiktreiber

Manchmal haben Änderungen, die in einer neuen Veröffentlichung eingebracht werden, Nebeneffekte, die wir ohne größeren Aufwand nicht vermeiden können, oder dies würde Fehler an anderen Stellen verursachen. Dieses Kapitel dokumentiert die uns bekannten Probleme. Bitte lesen Sie auch die Errata, die relevanten Paketdokumentationen, Fehlerberichte und weitere Informationen in Abschnitt 6.1, „Weitere Lektüre“.

5.1. LDAP-Unterstützung

Eine Funktionalität in den Kryptographie-Bibliotheken, die von den LDAP-Bibliotheken genutzt werden, führt dazu, dass Programme, die LDAP verwenden und versuchen, ihre wirksamen Privilegien zu ändern, beim Verbindungsaufbau zur einem LDAP-Server fehlschlagen, wenn der Server TLS oder SSL nutzt. Dies kann Probleme für setuid-Programme verursachen, die libnss-ldap verwenden, wie zum Beispiel sudo, su oder schroot. Außerdem können auch setuid-Programme Probleme bekommen, die LDAP-Suchvorgänge durchführen, wie sudo-ldap.

Es wird empfohlen, das Paket libnss-ldap durch libnss-ldapd zu ersetzen, einer neuen Bibliothek, die einen separaten Daemon (nslcd) für alle Suchanfragen verwendet. Der Ersatz für libpam-ldap ist libpam-ldapd.

Beachten Sie, dass libnss-ldapd den NSS-Caching-Daemon (nscd) vorschlägt. Sie sollten überprüfen, ob dieser für Ihre Umgebung passend ist, bevor Sie ihn installieren. Als Alternative zu nscd können Sie unscd in Betracht ziehen.

Weitere Informationen sind in den Fehlerberichten #566351 und #545414 zu finden.

5.2. Sicherheitsstatus von Webbrowsern

Debian 8 enthält mehrere Browser-Engines, die einem ständigen Ansturm von Sicherheitsproblemen ausgesetzt sind. Die hohe Rate von Anfälligkeiten und die teilweise fehlende Unterstützung seitens der Originalautoren in Form von langfristig gepflegten Programmversionen machen es sehr schwierig, für diese Browser Sicherheitsunterstützung auf Basis von rückportierten Fehlerkorrekturen anzubieten. Zusätzlich machen es Abhängigkeiten zwischen beteiligten Bibliotheken unmöglich, auf neuere Upstream-(Orignal-)Versionen hochzurüsten. Browser, die auf den Engines webkit, qtwebkit und khtml aufbauen, sind daher in Jessie zwar enthalten, es besteht jedoch für sie keine Sicherheitsunterstützung. Diese Browser sollten nicht für Verbindungen zu vertrauensunwürdigen Websites verwendet werden.

Für die gewöhnliche Verwendung empfehlen wir Browser, die auf der Mozilla xulrunner-Engine aufbauen (Iceweasel und Iceape) oder Chromium.

Chromium - while built upon the Webkit codebase - is a leaf package, which will be kept up-to-date by rebuilding the current Chromium releases for stable. Iceweasel, Iceape and Icedove will also be kept up-to-date by rebuilding the current ESR releases for stable.

5.3. ConsoleKit und alternative Displaymanager

ConsoleKit in Debian 8 betrachtet Sitzungen, die mittels startx oder durch Displaymanager ohne consolekit-Unterstützung (wie xdm oder slim) gestartet wurden, nicht als lokal, was den Zugriff auf einige Geräte verhindern könnte.

Wir empfehlen, stattdessen gdm3, kdm oder lightdm zu verwenden.

5.4. GNOME-Desktop-Änderungen und -Unterstützung

Standardmäßig sind die meisten Werkzeuge zur Barrierefreiheit im GNOME-Displaymanager (gdm3) nicht aktiviert. Der einfachste Weg, um eine Bildschirmlupe oder Bildschirmtastatur zu aktivieren, ist, den shell-Greeter zu verwenden.

Dazu editieren Sie die Datei /etc/gdm3/greeter.gsettings und entfernen vor folgendem Eintrag das Kommentarzeichen:

session-name='gdm-shell'

während Sie gleichzeitig das Kommentarzeichen (#) hinzufügen bei:

session-name='gdm-fallback'

Beachten Sie, dass dies eine kompatible 3D-Grafikkarte erfordert - was der Grund ist, warum dies nicht standardmäßig aktiviert ist.

5.5. Änderungen am KDE-Desktop

Das knetworkmanager-Paket ist überholt und wurde durch plasma-widget-networkmangement für den neuen KDE-Plasma-Arbeitsplatz ersetzt.

Wenn Sie die veraltete alleinstehende knetworkmanager-Applikation verwenden, sollten Sie sich darauf vorbereiten, nach dem Upgrade einige manuelle Konfigurationsschritte durchzuführen. Sie müssen möglicherweise plasma-widget-networkmanagement händisch zu Ihrem Panel oder Desktop hinzufügen.

Wenn Sie außerdem möchten, dass die Netzwerkverbindung nicht von dem Vorhandensein eines laufenden network-manager-Widgets abhängig ist, sollten Sie die Verbindung vielleicht als Systemverbindung (Für alle Benutzer verfügbar) einrichten.

5.6. NetworkManager

NetworkManager kann erkennen, ob eine Netzwerkschnittstelle über ifupdown gesteuert wird, um Konflikte zu vermeiden, aber dies ist nicht mit anderen Programmen zur Verwaltung des Netzwerks möglich, wie zum Beispiel wicd-daemon. Probleme und unerwartetes Verhalten sind möglich, wenn zwei Daemons die gleiche Schnittstelle steuern, um eine Netzwerkverbindung aufzubauen.

Wenn zum Beispiel wicd-daemon und NetworkManager beide laufen, wird der Versuch, mit einem wicd-Client eine Verbindung herzustellen, mit folgender Fehlermeldung fehlschlagen:

Connection Failed: bad password

Der Versuch, einen NetworkManager-Client in solch einer Situation zu nutzen, könnte ebenfalls fehlschlagen und diese Meldung ausgeben:

NetworkManager is not running.  Please start it.

Es wird empfohlen, dass Nutzer von GNOME in Erwägung ziehen, NetworkManager zu installieren und ausprobieren; falls gewünscht, kann der NetworkManager-Daemon mit folgendem Befehl auch dauerhaft deaktiviert werden:

# update-rc.d network-manager disable

Nachdem der Daemon deaktiviert ist, wird empfohlen, die Inhalt von /etc/resolv.conf zu kontrollieren. Diese Datei wird genutzt, um DNS-Server für die Namensauflösung festzulegen, und die Inhalte dieser Datei könnten durch NetworkManager verändert worden sein.

5.7. Änderungen an Bootlogd

bootlogd wurde von sysvinit-utils in ein separates bootlogd-Paket verschoben. Wenn Sie bootlogd weiter verwenden möchten, müssen Sie das Paket bootlogd installieren. Beachten Sie, dass die Konfigurationsdatei /etc/default/bootlogd sowie deren Option BOOTLOGD_ENABLE nicht mehr existieren; wenn Sie nicht möchten, dass bootlogd ausgeführt wird, entfernen Sie das bootlogd-Paket.

5.8. /etc/mtab und _netdev

Die Datei /etc/mtab, die genutzt wird, um die Liste der derzeit eingebundenen Dateisysteme zu speichern, wird in einen symbolischen Link auf /proc/mounts umgewandelt. In nahezu allen Fällen führt diese Änderung zu einem robusteren System, da die Liste so nie mehr inkonsistent mit der Realität sein kein. Wenn Sie allerdings die Option _netdev in /etc/fstab verwenden, um festzulegen, dass ein Dateisystem ein Netzwerk-Dateisystem ist, welches spezielle Behandlung erfordert, wird dies nach einem Neustart nicht mehr in /proc/mounts aufgelistet sein. Bei Standard-Netzwerkdateisystemen wie NFS wird dies nicht zu Problemen führen, da diese sich nicht auf die _netdev-Option verlassen. Dateisysteme, die diese Thematik nicht betrifft, sind ceph, cifs, coda, gfs, ncp, ncpfs, nfs, nfs4, ocfs2 und smbfs. Bei Dateisystemen, die sich für korrektes Lösen der Laufwerkseinbindung auf _netdev verlassen, zum Beispiel wenn ein NBD genutzt wird, ist eine statische mtab der einzige Weg, _netdev in Wheezy zu verwenden. Wenn Sie ein solches Setup haben, stellen Sie nach dem Upgrade auf Wheezy eine statische /etc/mtab wieder her, indem Sie folgendes ausführen:

  • Editieren Sie die Datei /etc/init.d/checkroot.sh und kommentieren Sie diese Zeilen aus (fügen Sie ein # am Zeilenanfang hinzu):

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

  • Wenn Sie das System neu gestartet haben, und /etc/mtab nun ein symbolischer Link ist:

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

    Fügen Sie die Option _netdev wieder hinzu, indem Sie die betroffenen Dateisysteme neu einbinden:

    # mount -o remount dateisystem
    

    /etc/mtab wird komplett neu erstellt, wenn Sie das System das nächste Mal neu starten.

5.9. Der pdksh-nach-mksh-Übergang

Das Public-Domain-Korn-Shell-Paket (pdksh) wurde für die auf Jessie folgende Veröffentlichung abgekündigt, da pdksh nicht mehr betreut wird (es wurde seit 1999 nicht mehr aktiv entwickelt).

Das MirBSD-Korn-Shell-Paket (mksh) enthält dessen Nachfolger; es hat sich aus der Public Domain Korn Shell entwickelt und wurde bezüglich des POSIX-Standards für die Shell aktuell gehalten. In Debian Jessie ist pdksh ein Übergangspaket, das lksh verwendet, eine Variante von mksh , die mit besonderen Kompatibilitätsoptionen gebaut wurde, um einen binären symbolischen Link auf pdksh bereitstellen zu können. Diese Kompatibilitäts-Binärdatei verhält sich eher wie die traditionelle Public Domain Korn Shell als wie die aktuelle mksh. Da sie aber Fehlerkorrekturen beinhaltet, die Änderungen von Verhaltensweisen nach sich ziehen, ist es kein reiner 1:1-Ersatz. Es wird Ihnen daher empfohlen, Ihre

#!/bin/pdksh

-Skripte auf

#!/bin/mksh

zu ändern und zu testen. Sollten die Teste fehlschlagen, empfehlen wir, die Skripte zu korrigieren. Falls dies aus irgendwelchen Gründen nicht möglich ist, können Sie sie auf

#!/bin/lksh

ändern und erneut testen. Diese Teste haben mehr Erfolgschancen, ohne dass größere Codekorrekturen erforderlich sind. Allerdings sollten Sie darauf gefasst sein, dass das Übergangspaket irgendwann in der Zukunft aus Debian entfernt wird.

Die Kompatibilitäts-Binärdatei ist nicht zur interaktiven Nutzung gedacht, daher sollten Sie als Systemadministrator die Login-Shell Ihrer Korn-Shell-Benutzer anpassen. Zwecks möglichst geringer Unterbrechungen sollten Sie dies vor dem Upgrade des Betriebssystems tun: installieren Sie manuell das mksh-Paket und ändern Sie die Login- oder interaktiven Shells der Benutzer, die pdksh verwenden, in mksh. Desweiteren ermuntern wir Sie, /etc/skel/.mkshrc in deren Home-Verzeichnisse zu kopieren: so werden einige Shell-Funktionalitäten wie pushd, popd und dirs bereitgestellt sowie ein hübscher

PS1

(Shell-Prompt).

5.10. Puppet 2.7 / 3.7 compatibility

If you are using Puppet, please be aware that Puppet 3.7 is not backwards compatible with Puppet 2.7. Among other things, the scoping rules have changed and many deprecated constructs have been removed.

It is recommended that you check the log files of the puppetmaster for deprecation warnings and resolve all of these before proceeding with the upgrade. Alternatively, testing the manifests with a tool like Puppet catelog test may also find potential issues prior to the upgrade.

When upgrading a Puppet managed system from wheezy to jessie, you must ensure that the corresponding puppetmaster runs at least Puppet version 3.7. If the master is running wheezy's puppetmaster, the managed jessie system will not be able to connect to it.

For more information on incompatability changes, please have a look at Telly upgrade issues and "The Angry Guide to Puppet 3"

5.11. Cyrus SASL SQL-Backends

Die Konfiguration von SQL-Engine-Backends für Cyrus SASL (wie aus dem Paket libsasl2-modules-sql) hat sich von einer Datenbank-spezifischen Konfiguration (z.B. mysql) hin zu dem generischen sql-auxprop-Plugin geändert.

Konfigurationsdateien für Applikationen, die SASL verwenden, wurden aktualisiert, zum Beispiel:

auxprop_plugin: mysql

sollte ersetzt werden durch:

auxprop_plugin: sql
sql_engine: mysql

Zusätzlich muss in der SQL-Anfrage (falls verwendet) %u durch %u@%r ersetzt werden, da Nutzer und Realm jetzt separat angegeben werden.

5.12. PHP 5.6 upgrade has behavioural changes

The upgrade to Jessie includes an upgrade of PHP from 5.4 to 5.6. This may affect any local PHP scripts and you are advised to check those scripts before upgrading. Below are a selected subset of these issues:

  • To prevent man-in-the-middle attacks against encrypted transfers client streams now verify peer certificates by default.

    As a result of this change, existing code using ssl:// or tls:// stream wrappers (e.g. file_get_contents(), fsockopen(), stream_socket_client()) may no longer connect successfully without manually disabling peer verification via the stream context's "verify_peer" setting.

    For more information about this particular issue, please read this document

  • PHP changes the handling of caseinsenstive in many cases:

    • All internal case insensitivity handling for class, function and constant names is done according to ASCII rules. Current locale settings are ignored.

    • The keywords "self", "parent" and "static" are now always case insensitive.

    • The json_decode() function no longer accepts non-lowercase variants of "boolean" values.

  • The logo GUID functions (e.g. php_logo_guid()) have been removed.

  • It is no longer possible to overwrite keys in static scalar arrays. Please see PHP bug 66015 for an example and more information about this particular issue.

  • The mcrypt_encrypt(), mcrypt_decrypt() and mcrypt_{MODE}() functions no longer accept keys or IVs with incorrect sizes. Furthermore an IV is now required if the used block cipher mode requires it.

For more information or the full list of potential issues, please have a look at upstream's list of backwards incompatible changes for PHP 5.5 and 5.6.

5.13. Firmware für Netzwerk- und Grafiktreiber

Einige Hardware-Treiber, inklusive Treiber für Netzwerkkarten (kabellos (WLAN) oder kabelgebunden) wie auch der Treiber für ATI-/AMD-Grafik-Chipsätze, erfordern zu ladende Firmware, um korrekt zu funktionieren.

Diese Firmware ist oft nicht freie Software und als solche nur über das non-free-Archiv verfügbar, und dort in den firmware-linux- und other-Paketen.