LINUX.ORG.RU
решено ФорумAdmin

Проблема с автосозданием хомяков


1

2

Доброе время суток!

Я настроил samba + winbind + vsftpd + pam + ad auth. Все замечательно работает: пользователи аутентифицируются, могут работать с самбой и фтп-директориями, но есть одна проблема - никак не могу добиться автосоздания (если отсутствует) домашнего каталога пользователя при входе по фтп. Знаю, что проблема должна решаться при помощи PAM модуля pam_mkhomedir.so, я попытался, но безуспешно. Вот мой памфайл:

cat /etc/pam.d/vsftpd
###
# Active Directory authentication
###
auth required pam_nologin.so 
auth sufficient pam_winbind.so krb5_auth
auth required pam_unix.so no_warn try_first_pass
account required pam_nologin.so 
account sufficient pam_winbind.so krb5_auth
account required pam_unix.so
session required pam_mkhomedir.so
session required pam_permit.so

Я также пытался задавать параметры в виде umask и skel - не помогло. Тщательно проверил права доступа на папку, где будет создаваться домашний каталог и даже временно выставлял их в 777 - безуспешно. Самба, однако, успешно решает эту задачу при помощи некоторых своих директив, в частности возможности выполнения скрипта при заходе. Благодаря директиве template homedir = /var/filestore/%D/%U мой включенный в домен комп знает, где будет домашний каталог виртуального пользователя, что видно из следующего примера:

ftp localhost
Connected to localhost.minsk-team.test.by.
220 Welcome to FTP service.
Name (localhost:root): testuser
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/var/filestore/MINSK-TEAM/testuser
Login failed.

Отсюда вопрос, умеет ли вообще pam_mkhomedir.so работать не с путем вида /home/.../%U? Если да, то помогите пожалуйста осознать, в чем затык и разобраться с автосозданием директорий при входе по фтп.

В федоре pam_mkhomedir при использовании «графической конфигурялки» вписывается как optional, а не как required:

session     optional      pam_mkhomedir.so skel=/etc/skel umask=0077

Nastishka ★★★★★ ()

А если попробовать засунуть pam_mkhomedir не в /etc/pam.d/vsftpd, а в /etc/pam.d/*winbind* (ну или что там у тебя)

Nao ★★★★★ ()

Ещё так попробуй

cat /etc/pam.d/vsftpd
...
account required pam_unix.so
session required pam_winbind.so #<--
session required pam_mkhomedir.so
session required pam_permit.so

Nao ★★★★★ ()
Ответ на: комментарий от Nao

Увы, не помогло. Поведение точно такое же как и без этой строки: директория не создается, поэтому и по фтп зайти нельзя. Может, действительно mkhomedir умеет создавать хомяки в /home и все?

NutipA ()
Ответ на: комментарий от vostrik

Аббалдеть, сколько не рыл в нете, не набредал на эту страничку. Спасибо тебе, vostrik, все решилось именно этой строкой. На всякий случай делаю перепост.

http://www.propheta.ru/2009/03/vsftpd-pammkhomedir.html

Как оказалось все решается одной строкой в «vsftpd.conf»:

session_support=YES

Проблема возникает из-за того, что vsftpd по умолчанию не трогает модули сервиса session в PAM.

NutipA ()
Ответ на: комментарий от NutipA

Решил заодно поделится другим методом. Попался мне на глаза чудесный модуль pam_exec, который позволяет выполнить произвольную команду. Например в моем случае просто создать хомяк это мало, нужно еще acl, всякие симлинки и некоторые другие вещи навесить. По этой причине этот модуль мне подошел еще лучше, чем pam_mkhomedir.

строка в /etc/pam.d/vsftpd:

session required pam_exec.so /usr/local/sbin/create_user_data_subdir_ftp.sh

и вначале скрипта create_user_data_subdir_ftp.sh узнаем имя пользователя из переменных окружения PAM следующим образом:

USER_NAME=$PAM_USER

Собственно говоря на этом и все. О других переменных окружения можно прочитать в мане или по ссылке выше. Всем спасибо и удачи!

NutipA ()
15 декабря 2011 г.
Ответ на: комментарий от NutipA

добавляю session required pam_exec.so /usr/local/sbin/create_user_data_subdir_ftp.sh в vsftpd.pam. при логине скрипт отрабатывает (директория создается), но ftp сессия зависает после PASS команды. не подскажешь в чем может быть дело?

anonymous ()
16 января 2012 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.