FUSE/Curlftpfs mount ftp account as drive partition in Linux

This is a great way to use your ftp server space, for example on your web hosting account (although I believe many hosts don't allow storage like this), but if you have a VPS/Dedicated Server etc.., this would be perfect.  Imagine how easy it is to work with an ftp account that you can just mount as a normal partition or directory in Linux, it would be great for backups etc..

 

Name

curlftpfs - mount a ftp host as a local directory

Synopsis

curlftpfs [options] host

path

Description

The program

curlftpfs

is a tool to mount remote ftp hosts as local directories. It connects to the

host

FTP server and maps its directory structure to the

path

directory.

curlftpfs is powered by libcurl for all transfer-related features. See libcurl(3) for details. The filesystem part is implemented on top of FUSE. See http://fuse.sourceforge.net/ for details.

Ftp Options

-h/--help
Print help options.
-v/--verbose
Make libcurl print verbose debug output.
-V/--version
Print curlftpfs, libcurl and fuse versions.
-o
Options are specified with a -o flag followed by a comma separated string of options.
cacert=<file>
(SSL) Pass a string naming a file holding one or more certificates to verify the peer with.

Note that option is by default set to the system path where libcurl's cacert bundle is assumed to be stored, as established at build time.

capath=<directory>
(SSL) Tells curlftpfs to use the specified certificate directory to verify the peer. The certificates must be in PEM format, and the directory must have been processed using the c_rehash utility supplied with openssl. Using capath can allow curlftpfs to make connections much more efficiently than using cacert if the cacert file contains many CA certificates.
cert=<certificate>
(SSL) Tells curlftpfs to use the specified certificate file. The default format is "PEM" and can be changed with cert_type.
cert_type=<type>
(SSL) Tells curlftpfs what certificate type the provided certificate is in. PEM, DER and ENG are recognized types.
ciphers=<list of ciphers>
(SSL) Specifies which ciphers to use in the connection. The list must be syntactically correct, it consists of one or more cipher strings separated by colons. Commas or spaces are also acceptable separators but colons are normally used, , - and + can be used as operators. Valid examples of cipher lists include 'RC4-SHA', 'SHA1+DES', 'TLSv1' and 'DEFAULT'. The default list is normally set when you compile OpenSSL.

Read up on SSL cipher list details on this URL: http://www.openssl.org/docs/apps/ciphers.html

codepage=<name>
Sets the encoding the ftp server uses to encode file names.
connect_timeout=<seconds>
Maximum time in seconds that you allow the connection to the server to take. This only limits the connection phase, once curlftpfs has connected this option is of no more use.
disable_eprt
Tell curlftpfs to disable the use of the EPRT and LPRT commands when doing active FTP transfers. Curlftpfs will normally always first attempt to use EPRT, then LPRT before using PORT, but with this option, it will use PORT right away. EPRT and LPRT are extensions to the original FTP protocol, may not work on all servers but enable more functionality in a better way than the traditional PORT command.
disable_epsv
Tell curlftpfs to disable the use of the EPSV command when doing passive FTP transfers. Curlftpfs will normally always first attempt to use EPSV before PASV, but with this option, it will not try using EPSV.
engine=<name>
Select the OpenSSL crypto engine to use for cipher operations. Use:
curl --engine list
to print a list of build-time supported engines. Note that not all (or none) of the engines may be available at run-time.
ftpfs_debug
Make curlftpfs print lots of debug information. Useful only in conjunction with the -d option.
ftp_port=<address>
Reverses the initiator/listener roles when connecting with ftp. This switch makes curlftpfs use the PORT command instead of PASV. In practice, PORT tells the server to connect to the client's specified address and port, while PASV asks the server for an ip address and port to connect to. <address> should be one of:
interface
i.e "eth0" to specify which interface's IP address you want to use
IP address
i.e "192.168.10.1" to specify exact IP number
host name
i.e "my.host.domain" to specify machine
-

make curlftpfs pick the same IP address that is already used for the control connection

Disable the attempt to use the EPRT command instead of PORT by using disable_eprt. EPRT is really PORT++.

httpproxy
Set the proxy type to HTTP. This is the default type.
interface=<name>
Pass a string as parameter. This set the interface name to use as outgoing network interface. The name can be an interface name, an IP address or a host name.
iocharset=<name>
Sets the charset used by the client side for codepage to charset translation. Default: UTF8.
ipv4
If libcurl is capable of resolving an address to multiple IP versions (which it is if it is ipv6-capable), this option tells libcurl to resolve names to IPv4 addresses only.
ipv6
If libcurl is capable of resolving an address to multiple IP versions (which it is if it is ipv6-capable), this option tells libcurl to resolve names to IPv6 addresses only.
key=<key>
(SSL) Private key file name. Allows you to provide your private key in this separate file. The default format is "PEM" and can be changed with key_type.
key_type=<type>
(SSL) Pass a string in the format of your private key. Supported formats are "PEM", "DER" and "ENG".

The format "ENG" enables you to load the private key from a crypto engine. In this case key is used as an identifier passed to the engine. You have to set the crypto engine with engine option. "DER" format key file currently does not work because of a bug in OpenSSL.

krb4=<level>
Enable kerberos4 authentication and use. The level must be entered and should be one of 'clear', 'safe', 'confidential' or 'private'. Should you use a level that is not one of these, 'private' will instead be used.

This option requires that the libcurl library was built with kerberos4 support. This is not very common.

no_verify_hostname
(SSL) Curlftpfs will not verify the hostname when connecting to a SSL enabled server.
no_verify_peer
(SSL) Curlftpfs will not verify the certificate when connecting to a SSL enabled server.
pass=<password>
(SSL) Pass phrase for the private key.
proxy=<host[:port]>
Use specified HTTP proxy. If the port number is not specified, it is assumed at port 1080.

This option overrides existing environment variables that sets proxy to use. If there's an environment variable setting a proxy, you can set proxy to "" to override it.

This options implies the proxytunnel option.

Starting with libcurl version 7.14.1, the proxy host can be specified the exact same way as the proxy environment variables, including protocol prefix (http://) and embedded user + password.

proxytunnel
Tells curlftpfs to use a tunnel proxy. This option is implied by the proxy option but you need to set it manually if you use the proxy environment variable.
proxy_anyauth
Tells curl to pick a suitable authentication method when communicating with the given proxy. This will cause an extra request/response round-trip.
proxy_basic
Tells curlftpfs to use HTTP Basic authentication when communicating with the given proxy. Basic is the default authentication method curlftpfs is used with proxies.
proxy_digest
Tells curlftpfs to use HTTP Digest authentication when communicating with the given proxy.
proxy_ntlm
Tells curlftpfs to use HTTP NTLM authentication when communicating with the given proxy.
proxy_user=<user:password>
Specify user and password to use for proxy authentication.
skip_pasv_ip
Tell curlftpfs to not use the IP address the server suggests in its response to curlftpfs's PASV command when curlftpfs connects the data connection. Instead curlftpfs will re-use the same IP address it already uses for the control connection.
socks4
Set the proxy type to SOCKS4.
socks5
Set the proxy type to SOCKS5.
ssl
Make curlftpfs use SSL/TLS for both control and data connections.
sslv3
Forces curlftpfs to use SSL version 3 when negotiating with a remote SSL server.
ssl_control
Make curlftpfs use SSL/TLS only for the control connection.
ssl_try
Curlftpfs will try to use SSL/TLS for both the control and data connections but if the server doesn't support it, it will still connect unencrypted.
tcp_nodelay
Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man page for details about this option.
tlsv1
(SSL) Forces curlftpfs to use TLS version 1 when negotiating with a remote TLS server.
transform_symlinks
Append path to the absolute symlinks so that they still point inside the ftp directory structure. Otherwise those links will very probably be broken.
user=<user:password>
Specify user and password to use for server authentication. Overrides netrc configuration.
utf8
Try to transfer file list with UTF-8 encoding. Send OPTS UTF8 ON at the beginning of file list transfer.

Fuse Options

-d
Enable FUSE debug output. Implies -f.
-f
Run curlftpfs in foreground mode.
-r
Mount read-only.
-s
Disable multi-threaded operation.
-o
Options are specified with a -o flag followed by a comma separated string of options.
allow_other
Allow access to other users. By default the mount point is only accessible to the user that mounted it and not even to root.
allow_root
Allow access to root user. By default the mount point is only accessible to the user that mounted it and not even to root.
debug
enable debug output
direct_io
use direct I/O
fsname=NAME
set filesystem name in mtab
gid=N
set file group
hard_remove
immediate removal (don't hide files)
kernel_cache
Let the kernel VFS do some caching of the files.
large_read
issue large read requests (2.4 only)
max_read=N
set maximum size of read requests
nonempty
allow mounts over non-empty file/dir
readdir_ino
try to fill in d_ino in readdir
uid=N
set file owner
umask=M
set file permissions (octal)
use_ino

let filesystem set inode numbers

Authors

Robson Braga Araujo is the author and maintainer of CurlFtpFS.

Www

http://curlftpfs.sourceforge.net

See Also

mount(8)
Tags:

fuse, curlftpfs, mount, ftp, partition, linuxthis, server, hosting, hosts, vps, dedicated, etc, directory, linux, backups, synopsis, google_protectandrun, ads_core, google_render_ad, google_handleerror, directories, connects, maps, powered, libcurl, features, filesystem, implemented, http, sourceforge, verbose, debug, output, versions, specified, comma, cacert, ssl, naming, certificates, verify, peer, default, bundle, stored, established, capath, certificate, pem, format, processed, c_rehash, utility, supplied, openssl, connections, efficiently, contains, ca, cert, quot, cert_type, provided, der, eng, ciphers, specifies, syntactically, consists, cipher, colons, commas, spaces, acceptable, separators, operators, valid, examples, lists, rc, sha, des, tlsv, compile, url, www, org, docs, apps, html, codepage, encoding, encode, connect_timeout, maximum, disable_eprt, disable, eprt, lprt, commands, active, transfers, extensions, protocol, servers, enable, functionality, disable_epsv, epsv, passive, pasv, select, crypto, operations, curl, supported, engines, ftpfs_debug, conjunction, ftp_port, reverses, initiator, listener, roles, connecting, ip, interface, eth, specify, domain, httpproxy, proxy, parameter, outgoing, iocharset, charset, translation, utf, ipv, resolving, multiple, resolve, addresses, allows, key_type, formats, enables, identifier, currently, krb, kerberos, authentication, confidential, requires, no_verify_hostname, hostname, enabled, no_verify_peer, password, phrase, overrides, existing, variables, variable, override, implies, proxytunnel, prefix, embedded, user, implied, manually, proxy_anyauth, suitable, method, communicating, proxy_basic, proxies, proxy_digest, digest, proxy_ntlm, ntlm, proxy_user, skip_pasv_ip, suggests, tls, sslv, negotiating, ssl_control, ssl_try, doesn, unencrypted, tcp_nodelay, curl_easy_setopt, transform_symlinks, append, symlinks, links, netrc, configuration, opts, foreground, mode, multi, threaded, allow_other, users, accessible, mounted, allow_root, direct_io, fsname, mtab, gid, hard_remove, removal, kernel_cache, kernel, vfs, caching, large_read, requests, max_read, nonempty, mounts, dir, readdir_ino, d_ino, readdir, uid, umask, permissions, octal, use_ino, inode, authors, robson, braga, araujo, author, maintainer,

Latest Articles

  • Cisco Unified Communication Manager (CUCM) - How To Add Phones
  • pptp / pptpd not working in DD-WRT iptables / router
  • systemd-journald high memory usage solution
  • How to Install FreePBX in Linux Debian Ubuntu Mint Guide
  • How To Install Cisco's CUCM (Cisco Unified Communication Manager) 12 Guide
  • Linux Ubuntu Redhat How To Extract Images from PDF
  • Linux and Windows Dual Boot Issue NIC Won't work After Booting Windows
  • Cisco CME How To Enable ACD hunt groups
  • How to install gns3 on Linux Ubuntu Mint
  • How to convert audio for Asterisk .wav format
  • Using Cisco CME Router with Asterisk as a dial-peer
  • Cisco CME How To Configure SIP Trunk VOIP
  • Virtualbox host Only Network Error Failed to save host network interface parameter - Cannot change gateway IP of host only network
  • Cisco CME and C7200 Router Testing and Learning Environment on Ubuntu 20+ Setup Tutorial Guide
  • Abusive IP ranges blacklist
  • How to Install Any OS on a Physical Drive from Windows Using VMware Workstation (Linux, Windows, BSD)
  • CDN Cloudflare how to set and preserve the real IP of the client without modifying application code on Apache
  • CentOS 7 fix Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was 14: curl#6 -
  • Ubuntu Debian How To Install Recommended Packages Automatically
  • How to set Linux Ubuntu Redhat Debian Command Line http https socks proxy for yum apt