Вчера была помечена как стабильная версия sys-libs/pam 0.99 для архитектуры x86 дистрибутива Gentoo Linux. Это означает что в ближайшие несколько дней с проблемой её обновления столкнётся достаточно большое количество пользователей.
Основная проблема в том, что после версии 0.78, которая была до этого была самой новой из помеченных как стабильные, из pam убрали ряд патчей от RedHat и добавили на их место патчи от FreeBSD. В результате этого отпала необходимость в модуле pam_stack и немного изменился синтаксис конфигурационных файлов.
Большая часть конфигурационных файлов pam сосредоточена в директории /etc/pam.d. Перед обновлением рекомендуется удалить оттуда все лишние файлы. Скорее всего это будут резервные копии изменённых файлов и файлы, оставшиеся от некоторых уже удалённых пакетов. Поэтому очевидно первым делом нужно получить список файлов, не принадлежащих какому-либо пакету. Для это воспользуемся командой:
qfile -o /etc/pam.d/*
Она выдаст примерно вот такой список файлов:
/etc/pam.d/sshd /etc/pam.d/system-auth~ /etc/pam.d/vmware-authd
Если программы qfile у вас нет, то установите пакет app-portage/portage-utils.
Обратите внимание на то, что у вас может быть файл /etc/pam.d/vmware-authd, который не принадлежит ни к одному из пакетов, однако он сгенерирован утилитой vmware-config.pl из пакета vmware-server. Если последний у вас установлен - лучше файл не удалять или потом пересоздать заново.
На всякий случай файлы лучше не удалять, а переместить куда-нибудь. Автор этой заметки сделал это вот так:
mkdir ~/pam_back && mv `qfile -o /etc/pam.d/*` ~/pam_back
Теперь можете обновиться:
emerge --oneshot sys-libs/pam
Затем обновите файлы конфигурации:
etc-update
Далее ищем файлы конфигурации pam, которые ссылаются на pam_stack.so:
grep -r pam_stack /etc/pam.d/|cut -d ":" -f1|sort|uniq
После чего в этих файлах все строки вида:
auth required pam_stack.so service=system-auth
Нужно заменить на:
auth include system-auth
Всё. Теперь осталось перезапустить сервисы, использующие pam (ssh, pure-ftpd, samba и проч) и можно расслабиться.
Пара небольших замечаний:
- Если ранее pam у вас был собран с флагом pam_chroot, то сейчас этот флаг не актуален и его функциональность вынесена в отдельный модуль - sys-auth/pam_chroot.
- Если вы использовали ранее pam с флагом berkdb, то сейчас вам нужно собрать пакет sys-auth/pam_userdb.
sungreen 2007-10-28 05:52:28 (#)