Cap. 5. Probleme în wheezy de care ar trebui să știți

Cuprins

5.1. Suportul pentru LDAP
5.2. Starea securității navigatoarelor web
5.3. ConsoleKit și manageri de display alternativi
5.4. Schimbări în mediul de birou GNOME și suportul pentru acesta
5.5. Schimbări în mediul de birou KDE
5.6. NetworkManager
5.7. perl-suid îndepărtat
5.8. Versiunile Request Tracker
5.9. Schimbări pentru bootlogd
5.10. /etc/mtab și _netdev
5.11. Tranziția de la pdksh la mksh
5.12. Compatibilitate Puppet 2.6 / 2.7
5.13. Implicațiile multiarch pentru ansamblul de unelte
5.14. Suporturi SQL pentru Cyrus SASL
5.15. Firmware pentru drivere de rețea și grafice

Uneori, modificările introduse într-o versiune nouă au efecte secundare pe care nu le putem evita în mod rezonabil sau schimbările expun probleme în altă parte. Aceasta secțiune documentează problemele cunoscute. Vă rugăm să citiți și erata, documentația pachetelor relevante, rapoarte de probleme și alte informații menționate în Secțiune 6.1, „Referințe suplimentare”.

5.1. Suportul pentru LDAP

O funcție în bibliotecile criptografice utilizate de bibliotecile LDAP cauzează eșecul programelor ce folosesc LDAP și încearcă să schimbe privilegiile efective când se conectează la un server LDAP folosind TLS sau SSL. Acest lucru poate cauza probleme pentru programele suid pe sisteme ce folosesc libnss-ldap cum ar fi sudo, su sau schroot și pentru programele suid care efectuează căutări LDAP ca sudo-ldap.

Este recomandat să înlocuiți pachetul libnss-ldap cu libnss-ldapd, o nouă bibliotecă care folosește un daemon separat (nslcd) pentru toate căutările LDAP. Pachetul libpam-ldap de asemenea poate fi înlocuit cu libpam-ldapd.

Rețineți că libnss-ldapd recomandă daemonul de cache NSS (nscd). Ar trebui să evaluați dacă acesta este adecvat în mediul dumneavoastră înainte de a-l instala. Ca o alternativă la nscd puteți lua în considerare și unscd.

Mai multe informații puteți găsi în rapoartele #566351 și #545414.

5.2. Starea securității navigatoarelor web

Debian 7.0 include mai multe motoare de navigatoare, care sunt afectate de un flux constant de vulnerabilități de securitate. Rata mare de vulnerabilități și lipsa parțială a suportului din partea dezvoltatorilor în forma unor versiuni cu suport mai lung face ca suportarea acestor navigatoare cu modificări adaptate la versiunea mai veche să fie foarte dificilă. Mai mult, datorită interdependențelor de biblioteci actualizarea la o versiune mai nouă este imposibilă. În aceste condiții, navigatoarele construite pe baza motoarelor webkit, qtwebkit și khtml sunt incluse în Wheezy, dar nu au suport de securitate complet. Aceste navigatoare nu ar trebui folosite cu situri web care nu sunt de încredere.

Pentru utilizare generală recomandăm navigatoarele construite pe baza motorului xulrunner (Iceweasel și Iceape), navigatoare bazate pe motorul Webkit (ex. Epiphany) sau Chromium.

Xulrunner a avut un istoric bun în privința adaptabilității remediilor către versiuni mai vechi. Chromium, deși este bazat pe Webkit, este un pachet periferic, care va fi actualizat prin recompilarea versiunii Chromium curente pentru stabil.

5.3. ConsoleKit și manageri de display alternativi

ConsoleKit în Debian 7.0 nu consideră locale sesiunile pornite folosind startx sau manageri de display care nu dispun de integrare cu consolekit (ex.: xdm sau slim). Acest lucru poate preveni accesul la anumite dispozitive.

Recomandăm folosire unuia dintre gdm3, kdm sau lightdm.

5.4. Schimbări în mediul de birou GNOME și suportul pentru acesta

Anumite utilitare pentru accesibilitate nu sunt activate implicit in managerul de display GNOME (gdm3). Cea mai simpla metoda de activare a zoomului sau a tastaturii vizuale sunt activarea interfeței shell.

Pentru aceasta editați fișierul /etc/gdm3/greeter.gsettings și înlăturați indicatorul de comentariu de la următoarea directivă:

session-name='gdm-shell'

dar marcați ca și comentariu

session-name='gdm-fallback'

Țineți cont ca este necesară o placă grafică 3D compatibilă, motiv pentru care nu este activată implicit.

5.5. Schimbări în mediul de birou KDE

Pachetul knetworkmanager este considerat învechit și a fost înlocuit cu plasma-widget-networkmanagement în noul spațiu de lucru KDE Plasma Workspace.

Dacă utilizați aplicația învechită knetworkmanager va trebui să faceți câteva configurații manuale. După actualizare va fi necesar să adăugați manual plasma-widget-networkmanagement pe panou sau suprafața de lucru.

În același timp, dacă conexiunea la rețea nu trebuie să depindă de activarea unui widget, va trebui să o marcați ca și conexiune de sistem (system connection).

5.6. NetworkManager

Pentru a evita conflicte NetworkManager poate detecta dacă o interfață de rețea este gestionată de ifupdown, dar nu și dacă este gestionată de alte programe, cum ar fi wicd-daemon. Când se încearcă stabilirea unei conexiuni de rețea pot rezulta probleme și efecte neașteptate.

De exemplu, dacă wicd-daemon și NetworkManager funcționează în același timp încercarea de a folosi un client wicd pentru a stabili o conexiune va eșua cu mesajul de eroare:

Connection Failed: bad password

Încercarea de a folosi un client NetworkManager va eșua cu:

NetworkManager is not running.  Please start it.

Se recomandă ca utilizatorii de GNOME să instaleze și să încerce NetworkManager, dar daemonul NetworkManager poate fi dezactivat permanent folosind următoarea comandă:

# update-rc.d network-manager disable

După dezactivarea deamonului se recomandă să examinați conținutul /etc/resolv.conf. Acest fișier este folosit pentru a specifica serverele DNS pentru rezoluția numelor, dar conținutul fișierului ar putea fi înlocuit de NetworkManager.

5.7. perl-suid îndepărtat

Comanda suidperl a fost scoasă de către autori începând cu 5.12. În consecință pachetul perl-suid care a fost distribuit cu Debian a fost de asemeni scos din distribuție. Posibile alternative includ folosirea unui simplu program C setuid care execută un script Perl dintr-o locație fixă, sau folosirea unui utilitar mai general, cum ar fi sudo.

5.8. Versiunile Request Tracker

Dacă aveți request-tracker3.8 instalat pe un sistem squeeze, țineți cont că acest pachet a fost scos din wheezy, pentru a fi înlocuit cu request-tracker4. Sunt necesare câteva operațiuni manuale pentru a actualiza de la request-tracker3.8 la request-tracker4: instalați request-tracker4 în paralel cu instalarea existentă de request-tracker3.8 și consultați notele de instalare/actualizare din /usr/share/doc/request-tracker4/README.Debian.gz (secțiunea: Upgrading from request-tracker3.8 to request-tracker4).

Aceiași procedură se aplică dacă utilizați request-tracker3.6 sau pachete mai vechi din versiuni Debian anterioare. În acest caz se recomandă actualizarea pas cu pas, folosind documentele de actualizare respective.

5.9. Schimbări pentru bootlogd

bootlogd a fost mutat din sysvinit-utils într-un pachet separat bootlogd. Dacă doriți să folosiți în continuare bootlogd va trebui să instalați pachetul bootlogd. Totodată fișierul de configurare /etc/default/bootlogd cu opțiunea BOOTLOGD_ENABLE nu mai există. Dacă nu doriți să rulați bootlogd ștergeți pachetul bootlogd.

5.10. /etc/mtab și _netdev

Fișierul /etc/mtab, folosit pentru a stoca lista cu sisteme de fișiere montate a fost schimbat într-o legătură simbolică către /proc/mounts. În aproape orice situație această schimbare va rezulta într-un sistem mai robust, deoarece lista nu poate devia de la realitate. Totuși, dacă folosiți opțiunea _netdev în /etc/fstab pentru a indica faptul că un sistem de fișiere este un sistem de fișiere în rețea care necesită tratament special, aceasta nu va mai fi adăugată în /proc/mounts după repornire. Acest lucru nu va cauza probleme pentru sistemele de fișiere standard, cum ar fi NFS, deoarece acestea nu se bazează pe opțiunea _netdev. Sisteme de fișiere care sunt neafectate de această problemă sunt ceph, cifs, coda, gfs, ncp, ncpfs, nfs, nfs4, ocfs2 și smbfs. Pentru sistemele de fișiere care depind de _netdev pentru demontarea corectă la oprire, de exemplu la utilizarea unui NBD, un mtab static va fi singura metodă de a folosi _netdev în wheezy. Dacă aveți o asemenea configurație atunci după ce ați încheiat actualizarea la wheezy restaurați un /etc/mtab static în felul următor:

  • Editați /etc/init.d/checkroot.sh marcați ca și comentariu aceste linii:

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

  • Dacă ați repornit sistemul și /etc/mtab este o legătură simbolică:

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

    Adăugați opțiunea _netdev prin remontarea sistemelor de fișiere afectate:

    # mount -o remount sistem-de-fișiere
    

    /etc/mtab va fi recreat corespunzător data viitoare când reporniți sistemul.

5.11. Tranziția de la pdksh la mksh

Pachetul Public Domain Korn Shell (pdksh) va fi retras în versiunea de după wheezy, deoarece pdksh nu mai este menținut (nu a mai fost dezvoltat activ din 1999).

Pachetul MirBSD Korn Shell (mksh) conține succesorul acestuia, care a evoluat din Public Domain Korn Shell și a fost ținut la zi cu standardul POSIX pentru interpretorul de comenzi. În Debian wheezy, pdksh este un pachet de tranziție care folosește lksh, o variantă de mksh compilată cu opțiuni speciale de compatibilitate pentru a furniza o legătură simbolică pdksh. Acest binar de compatibilitate este mai apropiat de tradiționalul Public Domain Korn Shell decât mksh. Deoarece conține îmbunătățiri care schimbă comportamentul nu este un înlocuitor direct. De aceea sunteți sfătuit să schimbați scripturile

#!/bin/pdksh

la

#!/bin/mksh

și să le testați. Dacă testul eșuează ar fi bine să modificați scripturile. Dacă dintr-un motiv oarecare acest lucru nu este posibil puteți să le modificați să utilizeze

#!/bin/lksh

și să le testați din nou. Acest test are șanse mai mari să reușească fără să modificați mult cod, dar țineți cont că la un moment dat pachetul de tranziție va fi scos din Debian.

Binarul de compatibilitate nu este potrivit pentru utilizare interactivă, deci va trebui să modificați shellul de autentificare pentru utilizatorii de Korn Shell. Pentru o întrerupere cât mai mică a serviciilor faceți acest lucru înainte de actualizarea sistemului de operare: instalați pachetul mksh și modificați interpretorul de comenzi la autentificare și/sau interactiv din pdksh în mksh. Ar fi bine să copiați și /etc/skel/.mkshrc în directoarele utilizatorilor, deoarece furnizează unele funcții cum ar fi pushd, popd și dirs, precum și un

PS1

(prompter de shell).

5.12. Compatibilitate Puppet 2.6 / 2.7

Când actualizați un sistem gestionat de Puppet de la squeeze la wheezy trebuie să vă vă asigurați că puppetmasterul respectiv rulează cel puțin versiunea 2.7. Dacă masterul rulează puppetmaster din squeeze, sistemul wheezy gestionat nu va putea să se conecteze la el.

A astfel de combinație va rezulta în următorul mesaj de eroare la următoarea activare puppet agent:

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

Pentru a rezolva această problemă trebuie actualizat puppetmaster. Un master 2.7 poate gestiona un sistem client 2.6.

5.13. Implicațiile multiarch pentru ansamblul de unelte

Introducerea multiarch (descrisă în Secțiune 2.3.2, „Multiarch”) schimbă căile pentru anumite fișiere, ceea ce ar putea să contravină presupunerilor făcute de componente ale ansamblului de unelte. Ansamblul de unelte din Debian a fost actualizat, dar utilizatorii care încearcă să compileze sau să folosească compilatoare externe trebuie să cunoască acest aspect.

Indicii pentru a putea ocoli asemenea probleme pot fi găsite în /usr/share/doc/libc0.1/NEWS.Debian.gz și în raportul #637232.

5.14. Suporturi SQL pentru Cyrus SASL

Configurația motoarelor SQL pentru Cyrus SASL furnizată în pachetul libsasl2-modules-sql package a fost modificată de la o configurație specifică pentru fiecare bază de date (ex. mysql) la pluginul generic sql auxprop.

Fișierele de configurare pentru aplicațiile care folosesc SASL trebuie actualizate, de exemplu:

auxprop_plugin: mysql

trebuie înlocuit cu:

auxprop_plugin: sql
sql_engine: mysql

Suplimentar, interogarea SQL (dacă este folosită) trebuie să aibă %u înlocuit cu %u@%r, deoarece „user” și „realm” sunt acum furnizate separat.

5.15. Firmware pentru drivere de rețea și grafice

Anumite drivere pentru hardware, inclusiv drivere pentru plăci de rețea (cu sau fără fir), precum și driverul pentru componentele grafice ATI/AMD necesită firmware suplimentar pentru a opera corect.

Aceste firmware-uri adesea nu sunt software liber, deci sunt disponibile doar din arhiva non-free, în pachetul firmware-linux și alte pachete.