Монтирование файловой системы FTP в linux
Источник: http://ruunix.ru/1773-montirovanie-fajlovoj-sistemy-ftp-v-linux.html
Иногда нужно, чтобы FTP аккаунт был всегда под рукой, а вернее отдельным каталогом вашей файловой системы. В linux это делается с помощью пакета curlftpfs, при этом в ядре должна быть включена поддержка FUSE (во всех современных ядрах она есть, если вы только не пересобирали ядро сами :) )
На официальный сайте проекта curlftpfs можно найти исходники программы, но практически во всех репозиториях она есть и исходники вам врядли понадобятся.
В ubuntu/debian ставим с помощью команды
$sudo aptitude install curlftpfs
На всякий случай подгружаем модуль ядра fuse (в разных дистрибутивах модуль может подгружаться и автоматом при задействовании системы FUSE)
$sudo modprobe fuse
Теперь можно и примонтировать ftp в какой-нибудь каталог, например /mnt/ftp
Следующие команды выполняем от sudo или суперпользователя
$sudo mkdir /mnt/ftp $sudo curlftpfs ftp.server.ru /mnt/ftp/ -o user=ftpuser
после набора пароля пользователя ftp в каталоге /mnt/ftp будет отображаться содержимое ftp с правами пользователя ftp.
Чтобы не набирать пароль, можно его указывать в команде подключения
$sudo curlftpfs ftp.server.ru /mnt/ftp/ -o user=ftpuser:ftppassword
Внимание: Так я делать не рекомендую по соображениям безопасности, т.к. команды обычно логируется в history или могут быть подсмотрены. Но если очень надо создать автоматическое монтирование ftp ресурса, тогда рекомендую создать скрипт с данной командой подключения и выставить на него права 600.
Чтобы монтировать ftp от обычного пользователя, надо дописать/расcкомментировать в файле /etc/fuse.conf (если файла нет, то создать) строку
user_allow_other
и монтировать уже командой от обычного пользователя
$curlftpfs ftp.server.ru /mnt/ftp/ -o user=ftpuser:ftppassword,allow_other
Если надо примонтировать только 1 подкаталог с главного корня ftp, достаточно просто указать относительный путь этого каталога. Например в корне ftp есть каталог temp, который нам надо примонтировать. Тогда команда монтирования будет выглядеть:
$curlftpfs ftp.server.ru/temp /mnt/ftp/ -o user=ftpuser:ftppassword,allow_other
Для монтирования ftp на уровне загрузке системы можно занести монтирование в файл /etc/fstab, подставив свои значения
curlftpfs#ftpuser:[email protected] /mnt/ftp fuse auto,user,uid=1000,allow_other 0 0
По команде
$df -h
Можно посмотреть в какую директорию смонтированы все файловые системы компьютера, в частности curlftpfs.
Из недостатков монтирования я заметил, что данная команда неправильно показывает занятое/свободное место на ftp.
Для отмонтирования ftp нужно выполнить
$sudo umount /mnt/ftp
См. также:
Обсуждение