Документ создан: 12.02.2010

FTP-сервер в "песочнице": как добраться до данных вне неё?

Когда ftp-сервер работает в "песочнице" (используется chroot), задействовать обычные симлинки (symlinks) на директории, расположенные вне корневой директории ftp-сервера, не представляется возможным, так как для ftp-сервера они находятся вне доступного дерева каталогов. Но держать абсолютно все файлы и каталоги в корневом каталоге ftp-сервера тоже не всегда возможно и рационально.

В этом случае спасает опция -o bind или --bind утилиты mount. Расмотрим, как это работает.

Допустим, что корневой каталог ftp-сервера - /var/ftp. А нам нужно, чтобы пользователи нашего ftp-сервера получили доступ "только на чтение" к каталогу music, который лежит на сервере в каталоге /home/user/, т.е. полный путь - /home/user/music. Решение нашей задачи выглядит так:

  1. Создаём каталог - точку монтирования:
    mkdir -p /var/ftp/music
  2. Выполняем монтирование так:
    mount -o ro,bind /home/user/music /var/ftp/music

    или так:

    mount -o ro --bind /home/user/music /var/ftp/music

После этого, наш ftp-сервер сможет получить доступ к этим данным.

Обратите внимание, что данная возможность появилась в linux с версии ядра 2.4.0

Вот и всё! Удачи!

 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate