TCB_CONVERT(8)

Название
tcb_convert , tcb_unconvert - утилиты преобразования теневых файлов для перехода к схеме tcb и обратно.

Использование
tcb_convert
tcb_unconvert

Описание
Утилита tcb_convert преобразует файл /etc/shadow во множество файлов, расположенных в /etc/tcb/ (см. tcb(5)). На время проведения этой операции файл /etc/shadow блокируется.

Утилита tcb_unconvert преобразует файлы из /etc/tcb/ обратно в единый файл /etc/shadow. Ввиду невозможности блокировки всей теневой базы данных при использовании схемы tcb, tcb_unconvert временно изменяет права на каталог /etc/tcb/ устанавливая группу владельца в значение "sys" для того, чтобы утилита passwd(1) не могла работать до окончания преобразования.

Переход на схему tcb
Для перевода операционной системы на схему управления теневыми паролями tcb с традиционной схемы /etc/passwd+/etc/shadow, необходимо предпринять следующее:

1.  Установить пакеты libtcb, libnss_tcb, pam_tcb, tcb_utils, а также адаптированные для работы с tcb пакеты из семейства shadow-utils.

2.  Создать системную группу "auth", если её ещё нет в системе.

3.  Для разрешения процессам, входящим одновременно в группы "shadow" и "auth", осуществлять доступ по чтению ко всем теневым файлам, необходимо добавить либо раскомментировать нижеприведённую строку в файле /etc/login.defs:

    tcb_AUTH_GROUP yes

4.  Запустить утилиту tcb_convert.

5.  В конфигурационном файле подсистемы NSS, /etc/nsswitch.conf, найти запись "shadow" и заменить метод "files" методом "tcb"; отредактированная запись будет выглядеть примерно так:

    shadow: tcb nisplus nis

6.  Во всех файлах, расположенных в каталоге /etc/pam.d/ заменить все вхождения pam_unix.so и pam_pwdb.so (если такие есть) на pam_tcb.so. Информацию по дополнительной настройке PAM можно прочесть в pam_tcb(8).

7.  В каждом файле из каталога /etc/pam.d/ содержащим правило "password" с использованием модуля pam_tcb (например, /etc/pam.d/system-auth) необходимо добавить параметр write_to=tcb к аргументам модуля pam_tcb, используемого при смене пароля. Отредактированная запись будет выглядеть примерно так:

    password required pam_tcb.so shadow use_authtok write_to=tcb

8.  Отредактировать файл /etc/login.defs, добавив (раскомментировав) строку:

    USE_tcb yes

9.  Теперь можно удалить файл /etc/shadow. Это важно сделать хотя бы для того, чтобы процессы, которым этот файл доступен по чтению, не могли прочитать хеши прежних паролей (многие из которых могут использоваться в течении долгого времени после перехода на tcb).

10. Если это не было сделано ранее при установке пакетов, выполнить с правами рута команды

    chown root:shadow /usr/bin/passwd /etc/pam.d/passwd
    chmod 2711 /usr/bin/passwd
    chmod 640 /etc/pam.d/passwd

11. Проверить, все ли работает нормально, в частности, можно ли "войти" в систему, работает ли смена пароля.

Возврат к традиционной схеме
Если по какой-либо причине необходимо вернуться к традиционной схеме с единым теневым файлом, это можно сделать, запустив утилиту tcb_unconvert и выполнив некоторые из действий, обратные перечисленным выше в разделе "Переход на схему tcb".

Историческая справка
Первая публичная версия реализации альтернативной схемы управления теневыми паролями tcb появилась 12 ноября 2001 года в ОС Openwall GNU/*/Linux.

Авторы

Rafal Wojtczuk <nergal@owl.openwall.com>, Solar Designer <solar@owl.openwall.com> -
    реализация схемы tcb для ОС Openwall GNU/*/Linux.

Реализация PAM-модуля
    pam_tcb призвана обеспечивать обратную совместимость с pam_unix, ввиду чего некоторые решения были заимствованы из pam_unix. Некоторые менее критичные фрагменты кода, а также в некоторой мере композиция кода взяты из реализации модуля pam_unix в Linux-PAM. Имена соавторов pam_unix приведены в каталоге orig_copyright/ исходного кода схемы tcb.

Ссылки
login.defs(5), pam_tcb(8), tcb(5)