Разрешения предотвращают загрузку файлов в vsftpd

Я хочу настроить vsftpd, чтобы позволить пользователю (чужому) загружать и создавать каталоги в / var / www / с намерением разрешить загрузку целых веб-сайтов.

Текущие разрешения:

  1. Apache работает на www-data .
  2. корень документа: / var / www /
  3. Разрешения: www-data: www-data для / var / www (рекурсивно.)

Уже предпринятые шаги:

Созданный пользователь: foouser

 useradd foouser

Добавлен пользователь foo в группу www-data.

 usermod -a -G www-data foouser

Установить / var / www / как домашний адрес пользователя:

 usermod -d /var/www/

Вот мой файл vsftpd.conf:

 root@c9e0266eb8c8:/var# cat /etc/vsftpd.conf | grep -v ^#
 listen=YES
 local_enable=YES
 write_enable=YES
 local_umask=022
 dirmessage_enable=YES
 use_localtime=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 chown_uploads=YES
 chown_username=www-data
 xferlog_file=/var/log/vsftpd.log
 xferlog_std_format=YES

Но я все еще не могу загрузите файл:

 Command:   USER foouser
 Response:  331 Please specify the password.
 Command:   PASS ******
 Response:  230 Login successful.
 Status:    Server does not support non-ASCII characters.
 Status:    Connected
 Status:    Starting upload of /home/michael/settings.json
 Command:   CWD /var/www
 Response:  250 Directory successfully changed.
 Command:   TYPE I
 Response:  200 Switching to Binary mode.
 Command:   PASV
 Response:  227 Entering Passive Mode (172,17,0,2,174,22).
 Command:   STOR settings.json
 Response:  553 Could not create file.
 Error: Critical file transfer error

СЕЙЧАС ... если я изменю права доступа к каталогу с www-data на foouser: foouser, я могу загрузить его нормально, но это (конечно) сломает apache.

Что я делаю не так?

Изменить: Разрешить анонимную загрузку файла в / var / www / тоже можно. Это докер-контейнер, поэтому подобная небезопасная практика вполне подойдет, поскольку она будет использоваться для разработки, а не для производства.

0
задан 24 October 2016 в 20:19
1 ответ

Я думаю, вам нужно добавить конфигурации пассивного режима в ваш файл '/ etc / vsftpd.conf`, поскольку ваше соединение переходит в пассивный режим. Ниже представлены конфиги.

# Additional configuration
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=xx.xx.xx.xx #Public IP of your server
local_root=/var/www

Вы можете установить pasv_min_port и pasv_max_port в соответствии с вашими потребностями. но убедитесь, что вы разрешили им проникнуть в ваш брандмауэр.

0
ответ дан 5 December 2019 в 09:27

Теги

Похожие вопросы