PAM модуль для автоматического создания домашнего каталога пользователя

Никогда не планировал выкладывать данный модуль, тем более, что на самом деле он разаработан вовсе не мной. Хотя та доработка, что я внес, фактически и позволяет ему работать, как было задумано его автором. Итак, что же это такое:

Это PAM-модуль для автоматического создания домашнего каталога при первой регистрации пользователя в системе. Неважно, как пользователь вошел в систему, важно что к моменту начала работы модуля права пользователя на работу уже проверены и подтверждены. И теперь ему необходимо создать домашний каталог.

Модуль не имеет конфигурационного файла, все настройки записываются в файл сервиса, который выполняет подключение в каталоге /etc/pam.d (например sshd2, если имеется в виду подключение по SSH, или system, если имеется в виду регистрация на локальной консоли).
account         required        pam_mkhome.so           mode=0700 skel=/tmp/test debug
Параметр mode задает права в формате chmod, которые будут установлены на вновь созданный домашний каталог. Параметр skel задает каталог со "скелетами" файлов, копируемых в домашний каталог (имена файлов должны иметь формат dot.filename, тогда будет создан файл .filename), по умолчанию используется каталог /usr/share/skel.

Где задается собственно домашний каталог? Домашний каталог берется из свойств пользователя - для локальных пользователей из /etc/passwd, для пользователей, которые получаются, например, через winbindd (или другим способом) - домашний каталог настраивается так, как предусмотрено в этих программах.

Что было изменено по сравнению с оригинальной программой (скачать ее можно здесь)? При анализе оригинальной программы было обнаружено, что домашний каталог создается, но при второй регистрации в системе, а при первой выдается сообщение "No homedir". При разборе исходного текста выяснилось, что модуль оринетирован на работу в секции session. К сожалению, в момент, когда используются модули секции session, первоначальное подключение пользователя уже выполнено (то есть пользователь подключается ДО загрузки модулей секции session), следовательно, пришлось доработать модуль так, чтобы он был ориентирован на секцию account.

Скачать модуль

Еще увидимся...
Искренне Ваш,
Master UNIX administrator