Итак: 1С Управление Торговлей умеет подключаться только по FTP, и только по 21-ому порту. На одном из разрабатываемых сайтов, 1С-УТ, с заданной периодичностью, должна была выкладывать прайс-лист в конкретную директорию внутри сайта.
Имеем: сайт работающий на Битрикс VM под управлением CentOS, директория куда должно происходить FTP соединение (от корня системы) /home/bitrix/ext_www/site.ru/price
Задача, настроить FTP доступ к данной директории, при этом создав отдельного пользователя и пароль, и ограничить этого пользователя только данной директорией- для безопасности. Все создаваемые им файлы должны принадлежать пользователю "bitrix", что бы веб-сервер мог с ними работать.
Для начала ставим pure-ftpd, в терминале выполняем команду
yum install pure-ftpd
Открываем на редактирование файл /etc/pure-ftpd/pure-ftpd.conf и раскомментируем строку
PureDB /etc/pure-ftpd/pureftpd.pdb
Создаем файл для хранения паролей FTP пользователей
touch /etc/pure-ftpd/pureftpd.passwd
Скачиваем вот этот архив, распаковываем и кладем файл gen_ftp_user.sh в директорию /root/ и добавляем право на запуск скрипта
chmod u+x /root/gen_ftp_user.sh
Открываем 21-ый порт в IP tables: команды выполнять поочереди
iptables -I INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT //Открываем порт service iptables save //сохраняем /etc/init.d/iptables restart //перезапускаем
И выполняем скрипт по следующему паттерну:
/root/gen_ftp_user.sh "bitrix" "ЛОГИН" "ПАРОЛЬ" "ПУТЬ ДО НУЖНОЙ ДИРЕКТОРИИ"
Для наглядности, в озвученной выше задаче было вот так
/root/gen_ftp_user.sh "bitrix" "1c_price" "YTprIGHce" "/home/bitrix/ext_www/site.ru/price"
Вот, в общем-то и все
Дополнительно по pure-ftpd
При перезагрузке виртуальной машины Битрикс, Pure-Ftpd не запускается автоматически, вы можете либо запускать его вручную командой
/etc/init.d/pure-ftpd start
Либо выполнить вот такую команду, что бы Pure-Ftpd запускался автоматически при перезагрузке/запуске системы
chkconfig --levels 235 pure-ftpd on