FTPFS(4)FTPFS(4)NAME
ftpfs - file transfer protocol (FTP) file system
SYNOPSIS
ftpfs [ -/dqnt ] [ -m mountpoint ] [ -a password ] [ -e ext ] [ -k
keyspec ] [ -o os ] [ -r remoteroot ] system
DESCRIPTION
Ftpfs dials the TCP file transfer protocol (FTP) port, 21, on system
and mounts itself (see bind(2)) on mountpoint (default /n/ftp) to pro‐
vide access via FTP to files on the remote machine. Ftpfs attempts to
use FTP's `passive' mode but falls back to using `active' mode if that
fails. If required by the remote machine, ftpfs will ask factotum(4)
for a key matching the pattern
proto=pass service=ftp server=system user? !password? keyspec
(If factotum does not have such a key, factotum will prompt the user
for one.)
The user names ftp and anonymous conventionally offer guest/read-only
access to machines. Anonymous FTP may be called without using factotum
by using the -a option and specifying the password.
By default the file seen at the mount point is the user's remote home
directory if he has one. The option -/ forces the mount point to cor‐
respond to the remote root. The option -r forces the mount point to
correspond to the remote directory remoteroot.
To avoid seeing startup messages from the server use option -q. To see
all messages from the server use option -d.
Some systems will hangup an ftp connection that has no activity for a
given period. The -K option causes ftp to send a NOP command every 15
seconds to attempt to keep the connection open. This command can cause
some servers to hangup, so you'll have to feel your way.
The -t option causes ftpfs to negotiate TLS encryption with the server.
To terminate the connection, unmount (see bind(1)) the mount point.
Since there is no specified format for metadata retrieved in response
to an FTP directory request, ftpfs has to apply heuristics to steer the
interpretation. Sometimes, though rarely, these heuristics fail. The
following options are meant as last resorts to try to steer interpreta‐
tion.
A major clue to the heuristics is the operating system at the other
end. Normally this can be determined automatically using the FTP SYST
command. However, in some cases the server doesn't implement the SYST
command. The -o option will force the case by specifying the name of
the operating system. Known system types are: UNIX, SUN, TOPS, Plan9,
VM, VMS, MVS, NetWare, OS/2, TSO, and WINDOWS_NT.
Some systems and/or FTP servers return directory listings that don't
include the file extension. The -e option allows the user to specify
an extension to append to all remote files (other than directories).
Finally, there are two FTP commands to retrieve the contents of a
directory, LIST and NLST. LIST is approximately equivalent to and NLST
to Ftpfs normally uses LIST. However, some FTP servers interpret LIST
to mean, give a wordy description of the file. Ftpfs normally notices
this and switches to using NLST. However, in some rare cases, the user
must force the use of NLST with the -n option.
EXAMPLE
You want anonymous FTP access to the system export.lcs.mit.edu. The
first import(4) command is only necessary if your machine does not have
access to the desired system, but another, called gateway in this exam‐
ple, does.
import gateway /net
ftpfs -a yourname@yourmachine export.lcs.mit.edu
SOURCE
/sys/src/cmd/ip/ftpfs
SEE ALSObind(2)BUGS
Symbolic links on remote Unix systems will always have mode 0777 and a
length of 8.
After connecting to a TOPS-20 system, the mount point will contain only
one directory, usually /n/ftp/PS:<ANONYMOUS>. However, walking to any
valid directory on that machine will succeed and cause that directory
entry to appear under the mount point.
Ftpfs caches files and directories. A directory will fall from the
cache after 5 quiescent minutes or if the local user changes the direc‐
tory by writing or removing a file. Otherwise, remote changes to the
directory that occur after the directory has been cached might not be
immediately visible. Attempting to walk to directory/.flush.ftpfs will
flush directory from the cache, thus forcing ftpfs to re-read it.
There is no way to issue the appropriate commands to handle special
synthetic FTP file types such as directories that automatically return
a tar of their contents.
Ftpfs makes copies in /tmp of files being transferred, so its effects
might not be immediate. If there is enough main memory, you might want
to run ramfs(4) first.
Filenames containing spaces will confuse ftpfs (and other FTP clients).
FTPFS(4)