Linux подключение ftp папок

Монтируем FTP ресурс как локальную FS

Захотелось как-то исполнить команду find в ftp-пространстве, но любой нормальный ftp сервер этого не даст сделать, а решение ну очень хотелось найти.

Вот и был обнаружен curlftpfs:

$ aptitude show curlftpfs Пакет: curlftpfs Состояние: установлен Автоматически установлен: нет Версия: 0.9.2-1 Приоритет: необязательный Раздел: utils Сопровождающий: Ding Honghui Размер в распакованном виде: 111k Зависимости: libc6 (>= 2.7-1), libcurl3-gnutls (>= 7.16.2-1), libfuse2 (>= 2.6), libglib2.0-0 (>= 2.12.0), fuse-utils Описание: filesystem to access FTP hosts based on FUSE and cURL CurlFtpFS is a tool to mount FTP hosts as local directories. It connects to a FTP server and maps its directory structure to the local filesystem. Based on FUSE (filesystem in userspace) and the cURL library, CurlFtpFS has some features that distinguish it over other FTP filesystems: * support for SSLv3 and TLSv1 * connecting through tunneling HTTP proxies * automatic reconnection if the server times out * conversion of absolute symlinks to point back into the FTP filesystem Сайт: http://curlftpfs.sourceforge.net

С помощью этого замечательного средства можно выполнить практически любую операцию с ftp-ресурсом.

Для начала установим пакет:

$ sudo aptitude install curlftpfs

Затем подмонтируем интересующий нас ftp-ресурс:

$ mkdir temp-ftpfs $ curlftpfs ftp://$USER:$PASSWD@$HOST/ temp-ftpfs $ cd temp-ftpfs $ ls $ find / -name '*.txt'

А вот отномнтировать получится только с root’овыми правами:

$ sudo umount curlftpfs#ftp://$USER:$PASSWD@$HOST/

PS: Вольный перевод, с некоторыми дополнениями, статьи с Debian Administration.
ЗЫ: На мой взгляд удобнее использовать sshfs, но если нет доступа по ssh тогда и вышеуказанный метод на что-нибудь да сгодится.

Источник

CurlFtpFS

CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE and libcurl.

Читайте также:  Linux вход под доменным пользователем

Installation

Make sure the kernel module has been loaded.

Mount FTP folder as root

Create the mount point and then mount the FTP folder.

# mkdir /mnt/ftp # curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password

If you want to give other (regular) users access right, use the allow_other option:

# curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password,allow_other

Do not add space after the comma or the allow_other argument will not be recognized.

To use FTP in active mode add the option ftp_port=- :

# curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password,allow_other,ftp_port=-

You can add this line to /etc/fstab to mount automatically.

curlftpfs#USER:PASSWORD@ftp.example.com /mnt/exampleorg fuse auto,user,uid=1000,allow_other,_netdev 0 0

Tip: You can use codepage when having problems with non-US English characters on servers that do not support UTF8, e.g. codepage=»iso8859-1″ .

To prevent the password to be shown in the process list, create a .netrc file in the home directory of the user running curlftpfs and chmod 600 with the following content:

machine ftp.example.com login username password mypassword

Mount FTP folder as normal user

You can also mount as normal user (always use the .netrc file for the credentials and ssl encryption!):

$ mkdir ~/example $ curlftpfs -o ssl,utf8 ftp://example.com/ ~/example
Error connecting to ftp: QUOT command failed with 500

then the server does not support the utf8 option. Leave it out and all will be fine.

Connect to encrypted server

In its default settings, CurlFtpFS will authenticate in cleartext when connecting to a non encrypted connection port. If the remote server is configured to refuse non encrypted authentication method / force encrypted authentication, CurlFtpFS will return a

# Error connecting to ftp: Access denied: 530

To authenticate to the ftp server using explicit encrypted authentication, you must specify the ssl option.

# curlftpfs ftp.example.com /mnt/ftp/ -o ssl,user=username:password

If your server uses a self-generated certificate not trusted by your computer, you can specify to ignore it

# curlftpfs ftp.example.com /mnt/ftp/ -o ssl,no_verify_peer,no_verify_hostname,user=username:password

For more details, see the curlftpfs(1) man page.

Читайте также:  Как установить самба на линукс

Troubleshooting

Unable to access files with non percent-encoded characters in their filename

This is a bug which has been initially reported in Launchpad bug 783033 in 2011 regarding paths with «#», confirmed in 2013 with no further activity. An upstream bug report links to a potential patch, which also fixes a breaking change in curl .

  • This page was last edited on 22 April 2023, at 15:08.
  • Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.
  • Privacy policy
  • About ArchWiki
  • Disclaimers

Источник

Linux подключение ftp папок

Как в ubuntu (линукс) смонтировать FTP как локальную папку

ftp

Монтируем ftp-сервер как локальную папку на вашем локальном компьютере под управлением операционной системы Linux

Для работы с файлами находящимися на FTP сервере как с локальными необходимо установиться программу CurlFtpFS.

CurlFtpFS — является инструмент для соединения FTP узлов как локальных директорий на вашем компьютере. Программа соединяется с FTP-сервером и отображает его директории в локальной файловой системе.

Установка CurlFtpFS.

# sudo aptitude install curlftpfs

Настраиваем CurlFtpFS для подключения к FTP:

# mkdir ftp_papka //Создаем папку
# curlftpfs ftp://$LOGIN:$PAROL@$HOST/ ftp_papka //Монтируем в эту папку наш FTP
# cd ftp_papka //Открываем папку
# ls //Смотрим содержимое

Для того что бы отмонтировать FTP папку необходимо внести команду
# fusermount -u ftp_papka



Для быстрого монтирования и отмонтирования можно на рабочем столе создать два ярлыка и прописать в них команды
для монтирования
curlftpfs ftp://$LOGIN:$PAROL@$HOST/ ftp_papka
и для отмонтирования
fusermount -u ftp_papka

У меня, когда я монтирую, появляется там же на рабочем столе значок my_ftp запустив который открывается содержимое моего FTP сервера.

mount-ftp

Можно еще сделать что бы ваш FTP Монтировался как автоматически при загрузке системы. Для этого требуется отредактироваться файл /etc/fstab

curlftpfs#ftpUser:ftpPass@ftp://ftpHost /localDirectory fuse rw,uid=1000,umask=0777,user,suid,allow_other,exec,auto,utf8 0 1

В этой строчке надо заменить значения выделенные жирным шрифтом на свои.

  • ftpUser — Имя пользователя для подключения к FTP.
  • ftpPass — Пароль для подключения к FTP.
  • ftpHost — Адрес сервера FTP (Он же хост).
  • /localDirectory — Путь к папке, в которую будет монтироваться FTP (Предварительно создать папку).
Читайте также:  No icmp redirect linux

Перезагрузить компьютер или запустить команду которая перемонтирует все диски

Еще можно сделать что бы ваш FTP-сервер монтировался при загрузке компьютера как диск.

Для Этого редактируем файл /etc/rc.local

Вставьте этот код, предварительно изменив в нём логин, пароль и хост для вашего FTP, аналогично примеру выше, перед строчкой «exit 0»:

sudo curlftpfs -o umask=0777,uid=1000,gid=1000,allow_other ftp://ftpUser:ftpPass@ftpHost /localdirectory

Источник

Монтирование FTP шары в Linux c использованием ftpfs

Доступен в EPEL-репозитории. Начиная с версии CentOS 6.7 репозиторий вшит в ОС.

Шаг 2. Подключение FTP

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

Проверим успешное монтирование хранилища:

[root@test public_html]# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root
8,9G 4,9G 3,6G 58% /
tmpfs 2,1G 0 2,1G 0% /dev/shm
/dev/sda1 500M 59M 415M 13% /boot
curlftpfs#ftp://testhost:[email protected]/
8,2T 0 8,2T 0% /home/ftp_share

Шаг 3. Автоматическое монтирование

Для автоматического монтирования хранилища при запуске системы, необходимо добавить строчку в /etc/fstab

curlftpfs#ftp://testhost:[email protected] /home/ftp_share fuse defaults 0 0

Шаг 4. Настройка Iptables

Если на сервере включен Firewall, необходимо прописать правила, позволяющие работать протоколу FTP как в активном, так и в пассивном режимах, для этого сначала загрузим модуль modprobe ip_conntrack_ftp , а затем добавим правила в таблицу:

iptables -A INPUT -p tcp -m tcp —dport 21 -m conntrack —ctstate ESTABLISHED -j ACCEPT -m comment —comment «Allow ftp connections on port 21»
iptables -A OUTPUT -p tcp -m tcp —dport 21 -m conntrack —ctstate NEW,ESTABLISHED -j ACCEPT -m comment —comment «Allow ftp connections on port 21»
iptables -A INPUT -p tcp -m tcp —dport 20 -m conntrack —ctstate ESTABLISHED,RELATED -j ACCEPT -m comment —comment «Allow ftp connections on port 20»
iptables -A OUTPUT -p tcp -m tcp —dport 20 -m conntrack —ctstate ESTABLISHED -j ACCEPT -m comment —comment «Allow ftp connections on port 20»

Источник

Оцените статью
Adblock
detector