summaryrefslogtreecommitdiff
path: root/sys/man/4/ftpfs
blob: 0a827b0ee0d58d3c6c1eb804dd6814ceb44e0765 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
.TH FTPFS 4
.SH NAME
ftpfs  \- file transfer protocol (FTP) file system
.SH SYNOPSIS
.B ftpfs
[
.B -/dqnt
]
[
.B -m
.I mountpoint
]
[
.B -a
.I password
]
[
.B -e
.I ext
]
[
.B -k
.I keyspec
]
[
.B -o
.I os
]
[
.B -r
remoteroot
]
.I system
.SH DESCRIPTION
.I Ftpfs
dials the TCP file transfer protocol (FTP) port, 21, on
.I system
and mounts itself (see
.IR bind (2))
on
.I mountpoint
(default
.BR /n/ftp )
to provide access via FTP to files on the remote machine.
.I Ftpfs
attempts to use FTP's `passive' mode
but falls back to using `active' mode if that fails.
If required by the remote machine,
.I ftpfs
will ask
.IR factotum (4)
for a key matching the pattern
.IP
.EX
proto=pass service=ftp server=\fIsystem\fP user? !password? \fIkeyspec\fP
.EE
.PP
(If
.I factotum
does not have such a key,
.I factotum
will prompt the user for one.)
.PP
The user names
.B ftp
and
.B anonymous
conventionally offer guest/read-only access to
machines.
Anonymous FTP may be called without using factotum
by using the
.B -a
option and specifying the
.IR password .
.PP
By default the file seen at the mount point is the user's
remote home directory if he has one.
The option
.B -/
forces the mount point to correspond to the
remote root.
The option
.B -r
forces the mount point to correspond to the
remote directory
.IR remoteroot .
.PP
To avoid seeing startup messages from the server use option
.BR -q .
To see all messages from the server use option
.BR -d .
.PP
Some systems will hangup an ftp connection that has no activity
for a given period.  The
.BR -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.
.PP
The
.B -t
option causes
.I ftpfs
to negotiate TLS encryption with the server.
.PP
To terminate the connection,
.B unmount
(see
.IR bind (1))
the mount point.
.PP
Since there is no specified format for metadata retrieved
in response to an FTP directory request,
.I 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 interpretation.
.PP
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
.B -o
option will force the case by specifying the name of the operating
system.  Known system types are:
.BR UNIX ,
.BR SUN ,
.BR TOPS ,
.BR Plan9 ,
.BR VM ,
.BR VMS ,
.BR MVS ,
.BR NetWare ,
.BR OS/2 ,
.BR TSO ,
and
.BR WINDOWS_NT .
.PP
Some systems and/or FTP servers return directory listings that don't
include the file extension.  The
.B -e
option allows the user to specify an extension to append to all
remote files (other than directories).
.PP
Finally, there are two FTP commands to retrieve the contents of a
directory, LIST and NLST.  LIST is approximately equivalent to
.L ls -l
and NLST to
.LR ls .
.I Ftpfs
normally uses LIST.  However, some FTP servers interpret LIST
to mean, give a wordy description of the file.
.I Ftpfs
normally notices this and switches to using NLST.  However, in
some rare cases, the user must force the use of NLST with the
.B -n
option.
.SH EXAMPLE
You want anonymous FTP access to the system
.BR export.lcs.mit.edu .
The first
.IR import (4)
command is only necessary if your machine does not have access to the
desired system, but another, called
.B gateway
in this example, does.
.IP
.EX
import gateway /net
ftpfs -a yourname@yourmachine export.lcs.mit.edu
.EE
.SH SOURCE
.B /sys/src/cmd/ip/ftpfs
.SH "SEE ALSO"
.IR bind (2)
.SH BUGS
Symbolic links on remote Unix systems will always have mode 0777
and a length of 8.
.PP
After connecting to a TOPS-20 system, the mount point will contain
only one directory, usually
.BR /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.
.PP
.I Ftpfs
caches files and directories.  A directory will fall from the cache
after 5 quiescent minutes or if the local user changes the
directory 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
.IB directory /.flush.ftpfs
will flush
.I directory
from the cache, thus forcing
.I ftpfs
to re-read it.
.PP
There is no way to issue the appropriate commands to handle special synthetic
FTP file types such as directories
that automatically return a
.B tar
of their contents.
.PP
.I Ftpfs
makes copies in
.B /tmp
of files being transferred,
so its effects might not be immediate.
If there is enough main memory, you might want to run
.IR ramfs (4)
first.
.PP
Filenames containing spaces will confuse
.I ftpfs
(and other FTP clients).