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

proftpd: проблема с stor


0

1

Очень странная задача тут возникла.. :)
Нужно дать пользователю через ftp временный доступ к диску его компьютера.

Дано:
- ftp-сервер: proftpd
- ОС на сервере: Debian Lenny
- ОС на компьютере пользователя: Windows Server 2003
- ftp-клиент: filezilla.

_Как реализовано:_

1. Создан пользователь (скажем, user_ftp). У пользователя, соотвественно, есть своя директория. Пользователю даны следующие права на эту директорию:
1) Средствами proftpd:
<Directory /media/ftp/user_pc>
AllowOverwrite on
<Limit MKD STOR RETR DELE XMKD RNRF RNTO RMD XRMD READ>
AllowUser user_ftp
</limit>
</directory>
2) средствами системы: тупо 777

2. На компьютере пользователя создана шара с полным доступом для всех. В директорию user_pc на сервере с помощью mount -t cifs примонтирована эта шара.

Таким образом, подключаясь через ftp к серверу, пользователь видит список файлов, фактически находящийся на другом компьютере.

_Что получается:_
- подключиться к ftp-серверу
- лазить по папкам, видеть их содержимое
- создавать и удалять папки/файлы
- закачивать файлы на сервер
- скачивать обратно те файлы, которые были закачаны через ftp

_Что не получается:_
- скачать с сервера что-нибудь, что уже там лежало.

Что пишет filezilla:

Статус:   Начинаю скачивать /user_pc/bigdisk/DCIM/100CANON/IMG_0003.JPG
Команда:   PORT 192,168,1,2,138,229
Ответ:   200 PORT command successful
Команда:   RETR IMG_0003.JPG
Ответ:   150 Opening BINARY mode data connection for IMG_0003.JPG (54153 bytes)
Ответ:   426 Transfer aborted. Operation not permitted
Ошибка:   Передача файла потерпела неудачу


_Вопрос:_ как скачать файл?

_Дополнительно:_
- Если не монтировать шары с удалённой машины, а просто пытаться скачивать файлы, лежащие в директории user_pc на локальном компьютере (сервере, где фактически находится ftp-сервер), всё получается - они скачиваются. Когда поверх монтируем шару с компьютера пользователя, скачать из шары ничего не можем.
- При монтировании права на директорию user_pc изменятся на
drwxrwxrwx 1 root root 0 1980-01-01 00:00 (интересно, откуда такая кривая дата?)
Может быть, проблема в этом? Но, повторяю, подключённый к ftp юзер может делать всё: закачивать, скачивать закачанное, удалять, создавать файлы, но не может только одного: скачивать файлы, бывшие там до монтирования, потому что команда stor не срабатывает.

- В логе фтп-сервера только вот это: «RETR IMG_0001.JPG» 426 0

PS: вариант «сменить на юзерском компе систему на какой-нить Линукс» рассматриваются :) Мне всё равно, что там стоит, и, если это поможет, я могу заменить ОС, ну или подключить диск пользователя к одному из компьютеров с ЛИнуксом, что одно и то же. Не могу я только засунуть пользовательский диск в компьютер, где находится ftp-сервер.

> вариант «сменить на юзерском компе систему на какой-нить Линукс» рассматриваются
Может быть, воспользоваться в этом случае NFS?

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

То есть предлагается на компьютере клиента таки установить ЛИнукс и поднять там сервер NFS? Можно, но хотелось бы всё-таки сначала рассмотреть варианты попроще :) Если их не будет, то так и сделаю.

Drevoborod ()

Может таки поднять фтп прямо на оффтопике и не заниматься онанизмом?

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

Онанизмом - интереснее ;) Если серьёзно, то хочется разобраться, где затык. Есть подозрение, что дело не в оффтопике, а в самбе, точнее, в её взаимодействии с proftpd. Лучшее понимание механизма работы может оказаться полезным в будущем. Ну ладно, так как ответов не предвидится, тему закрываю.

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

Закрытие темы тут не предусмотрено =) это галочка ради галочки, может кто ее и использует, но не стоит ставить если решение не найдено.

По теме:
проблем, на самом деле, с расшариванием шары обычно можно поиметь в два и более раз больше чем с обычными файлами.
Начать хотя бы с проверки всех прав доступа, для примера, может ли юзер-фтп скопировать из примонтированной юзер-пс директории существующие файлы прямо на сервере? Нам тут не видно с какими правами шара (смб) и файло (нтфс) на компе юзера, и под каким юзером это дело монтируется на сервере.
Дальше можно проверять на предмет кэширования/локов.

И как предложили выше - можно поднять нфс сервер на оффтопике и проверить через него.

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