Kapitel 5. Dinge, die Sie über Wheezy 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. perl-suid entfernt
5.8. Request Tracker-Versionen
5.9. Änderungen an Bootlogd
5.10. /etc/mtab und _netdev
5.11. Der pdksh-nach-mksh-Übergang
5.12. Puppet 2.6-/2.7-Kompatibilität
5.13. Auswirkungen von multiarch auf die Toolchain
5.14. Cyrus SASL SQL-Backends
5.15. 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 7.0 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 Wheezy 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.

Xulrunner hat in der Vergangenheit über die letzten Veröffentlichungszyklen eine gute Rückportierbarkeit für ältere Versionen bewiesen. Chromium ist - obwohl es auf der Webkit-Codebasis aufbaut - ein mehrteiliges Paket, das aktuell gehalten wird, indem die letzten Chromium-Veröffentlichungen jeweils für Stable neu gebaut werden.

5.3. ConsoleKit und alternative Displaymanager

ConsoleKit in Debian 7.0 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. perl-suid entfernt

suidperl wurde von den Originalautoren mit Version 5.12 aufgegeben, daher wurde auch das perl-suid-Paket, das in Debian enthalten war, entfernt. Mögliche Alternativen sind die Verwendung eines einfachen C-Wrappers mit Setuid-Rechten, um ein Perl-Skript von einem festkodierten Ort auszuführen, oder das Nutzen eines Werkzeugs mit eher grundsätzlicher Funktionalität wie zum Beispiel sudo.

5.8. Request Tracker-Versionen

Wenn Sie request-tracker3.8 auf Ihrem Squeeze-System installiert haben, beachten Sie, dass dieses Paket aus Wheezy entfernt wurde, um durch request-tracker4 ersetzt zu werden. Es sind einige manuelle Schritte erforderlich, um von request-tracker3.8 auf request-tracker4 zu aktualisieren: bitte installieren Sie request-tracker4 parallel zu Ihrer request-tracker3.8-Installation und konsultieren Sie die Installations-/Upgrade-Hinweise in /usr/share/doc/request-tracker4/README.Debian.gz (Abschnitt Upgrading from request-tracker3.8 to request-tracker4).

Das gleiche gilt, wenn Sie request-tracker3.6 oder älter aus früheren Debian-Veröffentlichungen in Verwendung haben; falls dies der Fall sein sollte, wird empfohlen, Schritt für Schritt zu aktualisieren und dabei den entsprechenden Upgrade-Dokumentationen zu folgen.

5.9. Ä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.10. /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.11. Der pdksh-nach-mksh-Übergang

Das Public-Domain-Korn-Shell-Paket (pdksh) wurde für die auf Wheezy 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 Wheezy 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.12. Puppet 2.6-/2.7-Kompatibilität

Wenn Sie ein durch Puppet verwaltetes System von Squeeze auf Wheezy aktualisieren, müssen Sie sicherstellen, dass auf dem dazugehörigen puppetmaster mindestens Puppet Version 2.7 läuft. Wenn auf dem Master die Squeeze-Version von puppetmaster läuft, wird sich das verwaltete Wheezy-System nicht mit dem Master verbinden können.

Solch eine Kombination führt zu folgender Fehlermeldung während eines puppet agent-Laufs:

Could not retrieve catalog from remote server: Error 400 on SERVER: No support for http method POST

Um dies Problem zu beheben, muss der puppetmaster aktualisiert werden. Ein 2.7-Master ist in der Lage, ein 2.6-Client-System zu verwalten.

5.13. Auswirkungen von multiarch auf die Toolchain

Die Einführung von multiarch (beschrieben in Abschnitt 2.2.2, „Multiarch“) ändert die Pfade von einigen Dateien, was Annahmen verschiedener Komponenten der Toolchain (Aneinanderreihung verschiedener Werkzeuge zum Bauen von Paketen) stören könnte. Debians Toolchain wurde aktualisiert, aber Benutzer, die versuchen, externe Compiler zu bauen oder zu verwenden, sollten dies vielleicht wissen.

Einige Hinweise, wie diese Probleme umgangen werden können, sind in /usr/share/doc/libc6/NEWS.Debian.gz und im Fehlerbericht #637232 zu finden.

5.14. 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.15. 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.