vsftpd авторизация пользователя без домашней директории

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

vsftpd авторизация пользователя без домашней директории

Непрочитанное сообщение m0ps » 2011-12-15 11:11:38

Есть vsftpd сервер с авторизацией в AD через winbind. Авторизация проходит без проблем, но если у пользователя нет на сервере домашней директории то подключиться не удается, vsftpd дает отлуп. Конфиг vsftpd:

Код: Выделить всё

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
local_root=/shares/data
chmod_enable=No
Как можно обойти эту проблему не создавая для каждого пользователя домашнюю директорию?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: vsftpd авторизация пользователя без домашней директории

Непрочитанное сообщение skeletor » 2011-12-15 15:15:01

Укажите ту папку, куда им нужен доступ.

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: vsftpd авторизация пользователя без домашней директории

Непрочитанное сообщение m0ps » 2011-12-15 15:28:59

собственно эту проблему решил. в smb.conf:

Код: Выделить всё

template homedir = /shares/data/
в vsftpd.conf:

Код: Выделить всё

local_root=/shares/data/
теперь еще нужно, что бы при заходе пользователя создавалась его личная директория (как правило создаются директории сриптом через самбу, но есть юзвери, которые ходят на фалопомойку только через ftp).
нашел пам модуль pam_exec.so, написал следующий скрипт (простенький, для теста):

Код: Выделить всё

#!/bin/sh
USER_NAME=$PAM_USER
USER_DIR=/shares/data/user/$USER_NAME
USER_UID=`id -u $USER_NAME`
USER_GID=`id -g $USER_NAME`

if [ ! -d "$USER_DIR" ]; then
  mkdir $USER_DIR
  chmod 700 $USER_DIR
  chown $USER_UID $USER_DIR
  chgrp $USER_GID $USER_DIR
fi
в vsftpd.pam добавил в конец:

Код: Выделить всё

session required pam_exec.so debug log=/tmp/pam_exec.log /root/bin/create_user_data_subdir_ftp.sh
при логине директория создается, но соединение зависат. помогает только перезагрузка vsftpd ((

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: vsftpd авторизация пользователя без домашней директории

Непрочитанное сообщение m0ps » 2011-12-15 15:57:51

дебаг фтп сервера содержит следующие строчки:

Код: Выделить всё

Thu Dec 15 14:55:49 2011 [pid 16247] CONNECT: Client "172.16.1.135"
Thu Dec 15 14:55:49 2011 [pid 16247] FTP response: Client "172.16.1.135", "220 (vsFTPd 2.2.2)"
Thu Dec 15 14:55:50 2011 [pid 16247] FTP command: Client "172.16.1.135", "USER m0ps"
Thu Dec 15 14:55:50 2011 [pid 16247] [m0ps] FTP response: Client "172.16.1.135", "331 Please specify the password."
Thu Dec 15 14:55:52 2011 [pid 16247] [m0ps] FTP command: Client "172.16.1.135", "PASS <password>"