bigton
@bigton
Web-программист

Как заставить работать proftpd + mod_exec?

Добрый день.

ProFTPD Version 1.3.4a
mod_exec/0.9.11

Конфиг
<IfModule mod_exec.c>
    ExecEngine on
    ExecLog /var/log/proftpd/exec.log
    ExecOnConnect /var/www/site/data/sh/ftp.sh %u
    ExecOnCommand STOR /var/www/site/data/sh/ftp.sh %u
</IfModule>


Логи
preparing to execute '/var/www/site/data/sh/ftp.sh' with uid 109 (euid 109), gid 65534 (egid 65534)
+ '/var/www/site/data/sh/ftp.sh': argv[1] =
'/var/www/site/data/sh/ftp.sh' terminated normally, with exit status 0
ExecOnConnect '/var/www/site/data/sh/ftp.sh' succeeded

preparing to execute '/var/www/site/data/sh/ftp.sh' with uid 500 (euid 500), gid 500 (egid 500)
 + '/var/www/site/data/sh/ftp.sh': argv[1] = user
error: unable to open /dev/null for stdin: No such file or directory
'/var/www/site/data/sh/ftp.sh' terminated normally, with exit status 2
STOR ExecOnCommand '/var/www/site/data/sh/ftp.sh' failed: No such file or directory


Проблема

Как видно из логов mod_exec работает, но если директиву ExecOnConnect он отрабатывает от своего имени и всё работает, то директиву ExecOnCommand он отрабатывает от имени FTP пользователя и ничего не работает.

Проблема решается удалением настройки DefaultRoot ~ из proftpd.conf, но в таком случае FTP пользователи получаю доступ ко всей файловой системе.

Есть ли способ решить мою задачу без удаления DefaultRoot ~? Может быть как то через ссылки?

* Корневой директорией FTP пользователей является /var/www/site/data/
** Интернет прочесал, у всех решение "не используйте ProFTPD"

Спасибо за внимание!
  • Вопрос задан
  • 634 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rgb000
Привет. Столкнулся точно с такой же проблемой недавно. Из-за того, что установлен jail на домашнею папку для каждого пользователя (DefaultRoot) - модуль не может получить доступ к системному окружению. И это свободно решается установкой дополнительного модуля mod_vroot. Детали можно посмотреть здесь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы