1pure-ftpd(8)                       Pure-FTPd                      pure-ftpd(8)
2
3
4

NAME

6       pure-ftpd - simple File Transfer Protocol server
7
8

SYNOPSIS

10       pure-ftpd  [-0] [-1] [-4] [-6] [-a gid] [-A] [-b] [-B] [-c clients] [-C
11       cnx/ip] [-d [-d]] [-D] [-e] [-E] [-f facility] [-F fortunes  file]  [-g
12       pidfile] [-G] [-H] [-i] [-I] [-j] [-J ciphers] [-k percentage] [-K] [-l
13       authentication[:config file]] [-L max  files:max  depth]  [-m  maxload]
14       [-M]   [-n   maxfiles:maxsize]  [-N]  [-o]  [-O  format:log  file]  [-p
15       first:last] [-P ip address or host name] [-q upload:download ratio] [-Q
16       upload:download  ratio] [-r] [-R] [-s] [-S [address,][port]] [-t upload
17       bandwidth:download bandwidth] [-T upload bandwidth:download  bandwidth]
18       [-u  uid] [-U umask files:umask dirs] [-v bonjour name] [-V ip address]
19       [-w] [-W] [-x] [-X] [-y max user sessions:max anon  sessions]  [-Y  tls
20       behavior] [-z] [-Z]
21
22       Alternative style :
23       -0 --notruncate
24       -1 --logpid
25       -4 --ipv4only
26       -6 --ipv6only
27       -a --trustedgid
28       -A --chrooteveryone
29       -b --brokenclientscompatibility
30       -B --daemonize
31       -c --maxclientsnumber
32       -C --maxclientsperip
33       -d --verboselog
34       -D --displaydotfiles
35       -e --anonymousonly
36       -E --noanonymous
37       -f --syslogfacility
38       -F --fortunesfile
39       -g --pidfile
40       -G --norename
41       -h --help
42       -H --dontresolve
43       -i --anonymouscantupload
44       -I --maxidletime
45       -j --createhomedir
46       -J --tlsciphersuite
47       -k --maxdiskusagepct
48       -K --keepallfiles
49       -l --login
50       -L --limitrecursion
51       -m --maxload
52       -M --anonymouscancreatedirs
53       -n --quota
54       -N --natmode
55       -o --uploadscript
56       -O --altlog
57       -p --passiveportrange
58       -P --forcepassiveip
59       -q --anonymousratio
60       -Q --userratio
61       -r --autorename
62       -R --nochmod
63       -s --antiwarez
64       -S --bind
65       -t --anonymousbandwidth
66       -T --userbandwidth
67       -u --minuid
68       -U --umask
69       -v --bonjour
70       -V --trustedip
71       -w --allowuserfxp
72       -W --allowanonymousfxp
73       -x --prohibitdotfileswrite
74       -X --prohibitdotfilesread
75       -y --peruserlimits
76       -Y --tls
77       -z --allowdotfiles
78       -Z --customerproof
79
80

DESCRIPTION

82       Pure-FTPd is a small, simple server for the old and hairy File Transfer
83       Protocol, designed to use less resources than older servers, be smaller
84       and very secure, and to never execute any external program.
85
86       It  support most-used features and commands of FTP (including many mod‐
87       ern extensions), and leaves out everything which is  deprecated,  mean‐
88       ingless, insecure, or correlates with trouble.
89
90       IPv6 is fully supported.
91
92

OPTIONS

94       -0     When  a file is uploaded and there is already a previous version
95              of the file with the same name, the old file  will  neither  get
96              removed  nor  truncated.   Upload will take place in a temporary
97              file and once the upload is complete, the switch to the new ver‐
98              sion  will  be  atomic.  This option should not be used together
99              with virtual quotas.
100
101       -1     Add the PID to the syslog output. Ignored if -f none is set.
102
103       -4     Listen only to IPv4 connections.
104
105       -6     Listen only to IPv6 connections.
106
107       -a gid Regular users will be chrooted to their home directories, unless
108              they  belong  to  the  specified  gid.  Note that root is always
109              trusted, and that chroot() occurs only for anonymous ftp without
110              this option.
111
112       -A     Chroot() everyone, but root.
113
114       -b     Be broken. Turns on some compatibility hacks for shoddy clients,
115              and for broken Netfilter gateways.
116
117       -B     Start the standalone server in background (daemonize).
118
119       -c clients
120              Allow a maximum of clients to be connected.  clients must be  at
121              least 1, and if you combine it with -p it will be forced down to
122              half the number of ports specified by -p.  If more than  clients
123              are  connected,  new  clients are rejected at once, even clients
124              wishing to upload, or to log in as normal users.  Therefore,  it
125              is  advisable  to  use  -m  as  primary overload protection. The
126              default value is 50.
127
128       -C max connection per ip
129              Limit the number of simultanous connections coming from the same
130              IP  address.  This  is yet another very effective way to prevent
131              stupid denial of services and bandwidth starvation by  a  single
132              user.   It  works only when the server is launched in standalone
133              mode (if you use a super-server, it is supposed to do that).  If
134              the  server  is  launched  with  -C 2 , it doesn't mean that the
135              total number of connection  is  limited  to  2.   But  the  same
136              client,  coming from the same machine (or at least the same IP),
137              can't have more than two simultaneous connections. This features
138              needs some memory to track IP addresses, but it's recommended to
139              use it.
140
141       -d     turns on debug logging. Every command is logged, except that the
142              argument  to PASS is changed to "<password>". If you repeat -d ,
143              responses too are logged.
144
145       -e     Only allow anonymous users to log in.
146
147       -E     Only allow authenticated login. Anonymous users are prohibited.
148
149       -f facility
150              makes ftpd use facility for all  syslog(3)  messages.   facility
151              defaults  to  ftp.   The  facility  names are normally listed in
152              /usr/include/sys/syslog.h.  Note that if -f  is  not  the  first
153              option  on  the command line, a couple of messages may be logged
154              to local2 before the -f option is parsed.  Use -f none  to  dis‐
155              able logging.
156
157       -F fortunes file
158              Display  a funny random message in the initial login banner. The
159              random cookies are extracted from a text file, in  the  standard
160              fortune format. If you installed the fortune package, you should
161              have a directory (usually /usr/share/fortune ) with binary files
162              ( xxxx.dat ) and text files (without the .dat extension).
163
164       -g pidfile
165              In  standalone  mode,  write  the pid to that file in instead of
166              /var/run/pure-ftpd.pid .
167
168       -G     When this option is enabled, people can no more change the  name
169              of already uploaded files, even if they own those files or their
170              directory.
171
172       -H     Don't resolve host names ("192.0.34.166" will be logged  instead
173              of "www.example.com"). It can significantly speed up connections
174              and reduce bandwidth usage on busy servers. Use it especially on
175              public FTP sites.
176
177       -i     Disallow  upload for anonymous users, whatever directory permis‐
178              sions are. This option is especially useful for virtual hosting,
179              to avoid your users create warez sites in their account.
180
181       -I timeout
182              Change  the  maximum  idle  time. The timeout is in minutes, and
183              defaults to 15.
184
185       -j     If the home directory of a  user  doesn't  exist,  automatically
186              create it. The newly created home directory belongs to the user,
187              and permissions are set according to the current directory mask.
188              To avoid local attacks, the parent directory should never belong
189              to an untrusted user.
190
191       -J ciphers
192              Set the list of ciphers that will be accepted for  SSL/TLS  con‐
193              nections.
194
195       -k percentage
196              Disallow  upload  if the partition is more than percentage full.
197              Example: -k 95 will ensure that your disk will never get  filled
198              more than 95% by FTP users.
199
200       -K     Allow  users to resume and upload files, but NOT to delete them.
201              Directories can be removed, but only if they are empty.
202
203       -l authentication:file
204              Enable a new authentication method. It can be one of :  -l  unix
205              For  standard  (/etc/passwd)  authentication.   -l  pam  For PAM
206              authentication.  -l ldap:LDAP config file For LDAP  directories.
207              -l  mysql:MySQL config file For MySQL databases.  -l pgsql:Post‐
208              gres config file For Postgres databases.  -l puredb:PureDB data‐
209              base  file  For PureDB databases.  -l extauth:path to pure-authd
210              socket For external authentication handlers.
211              Different authentication methods  can  be  mixed  together.  For
212              instance   if   you  run  the  server  with  -lpuredb:/etc/pure-
213              ftpd/pwd.pdb -lmysql:/etc/pure-ftpd/my.cf -lunix  Accounts  will
214              first  be  authenticated  from a PureDB database. If it fails, a
215              MySQL server will be asked. If the account is still not found is
216              the  database, standard unix accounts will be scanned. Authenti‐
217              cation methods are tried in the order you give the -l options.
218              See the README.LDAP and README.MySQL files for  info  about  the
219              built-in LDAP and SQL directory support.
220
221       -L max files:max depth
222              Avoid  denial-of-service  attacks by limiting the number of dis‐
223              played files in a 'ls' and the  maximum  depth  of  a  recursive
224              'ls'.  Defaults  are  2000:5  (2000 files displayed for a single
225              'ls' and walk through 5 subdirectories max).
226
227       -m load
228              Do not allow anonymous users to download files if  the  load  is
229              above load when the user connects. Uploads and file listings are
230              still allowed, as are downloads by real users. The user  is  not
231              told about this until he/she tries to download a file.
232
233       -M     Allow anonymous users to create directories.
234
235       -n maxfiles:maxsize
236              Enable virtual quotas When virtual quotas are enabled, .ftpquota
237              files are created, and  the  number  of  files  for  a  user  is
238              restricted to 'maxfiles'. The max total size of his directory is
239              also restricted to 'maxsize' Megabytes. Members of  the  trusted
240              group aren't subject to quotas.
241
242       -N     NAT  mode. Force active mode. If your FTP server is behind a NAT
243              box that doesn't support applicative FTP proxying, or if you use
244              port  redirection  without  a  transparent  FTP proxy, use this.
245              Well... the previous sentence isn't very clear.  Okay:  if  your
246              network looks like this:
247              FTP--NAT.gateway/router--Internet
248              and  if  you want people coming from the internet to have access
249              to your FTP server, please try without  this  option  first.  If
250              Netscape clients can connect without any problem, your NAT gate‐
251              way rulez. If Netscape doesn't display directory listings,  your
252              NAT gateway sucks. Use -N as a workaround.
253
254       -o     Enable pure-uploadscript.
255
256       -O format:log file
257              Record all file transfers into a specific log file, in an alter‐
258              native format. Currently, three formats  are  supported  :  CLF,
259              Stats, W3C and xferlog.
260              If you add
261              -O clf:/var/log/pureftpd.log
262              to  your  starting  options,  Pure-FTPd  will  log  transfers in
263              /var/log/pureftpd.log in a format  similar  to  the  Apache  web
264              server in default configuration.
265              If you add
266              -O stats:/var/log/pureftpd.log
267              to  your  starting  options,  Pure-FTPd will create accurate log
268              files designed for traffic analys software like ftpStats.
269              If you add
270              -O w3c:/var/log/pureftpd.log
271              to your starting options, Pure-FTPd will  create  W3C-conformant
272              log files.
273              For   security   purposes,   the  path  must  be  absolute  (eg.
274              /var/log/pureftpd.log, not  ../log/pureftpd.log).
275
276       -p first:last
277              Use only ports in the range first to  last  inclusive  for  pas‐
278              sive-mode  downloads.  This  means  that clients will not try to
279              open connections to TCP ports outside the range  first  -  last,
280              which  makes pure-ftpd more compatible with packet filters. Note
281              that the maximum number of clients (specified with -c) is forced
282              down  to  (last  + 1 - first)/2 if it is greater, as the default
283              is. (The syntax for the port range is, conveniently, the same as
284              that of iptables).
285
286       -P ip address or host name
287              Force the specified IP address in reply to a PASV/EPSV/SPSV com‐
288              mand. If the server is behind  a  masquerading  (NAT)  box  that
289              doesn't  properly  handle  stateful FTP masquerading, put the ip
290              address of that box here. If you have a dynamic IP address,  you
291              can use a symbolic host name (probably the one of your gateway),
292              that will be resolved every time a new client will connect.
293
294       -q upload:download
295              Enable an upload/download ratio for anonymous users (ex: -q  1:5
296              means that 1 Mb of goodies have to be uploaded to leech 5 Mb).
297
298       -Q upload:download
299              Enable  ratios  for anonymous and non-anonymous users. If the -a
300              option is also used, users from the trusted group have no ratio.
301
302       -r     Never overwrite existing files. Uploading  a  file  whoose  name
303              already  exists  cause  an  automatic  rename.  Files are called
304              xyz.1, xyz.2, xyz.3, etc.
305
306       -R     Disallow users (even non-anonymous ones) usage of the CHMOD com‐
307              mand.  On  hosting  services,  it may prevent newbies from doing
308              mistakes, like setting bad permissions on their home  directory.
309              Only root can use CHMOD when this switch is enabled.
310
311       -s     Don't  allow  anonymous  users  to retrieve files owned by "ftp"
312              (generally, files uploaded by other anonymous users).
313
314       -S [{ip address|hostname}] [,{port|service name}]
315              This option is only effective when the server is launched  as  a
316              standalone server.  Connections are accepted on the specified IP
317              and port. IPv4 and IPv6 are supported. Numeric and  fully-quali‐
318              fied host names are accepted. A service name (see /etc/services)
319              can be used instead of a numeric port number.
320
321       -t bandwidth
322              or -t upload bandwidth:download bandwidth Enable process  prior‐
323              ity lowering and bandwidth throttling for anonymous users. Delay
324              should be in kilobytes/seconds.
325
326       -T bandwidth
327              or -T upload bandwidth:download bandwidth Enable process  prior‐
328              ity   lowering   and   bandwidth  throttling  for  *ALL*  users.
329              Pure-FTPd should have been explicitely compiled with  throttling
330              support  to  have these flags work.  It is possible to have dif‐
331              ferent bandwidth limits for uploads and for downloads. '-t'  and
332              '-T' can indeed be followed by two numbers delimited by a column
333              (':'). The first number is the upload bandwidth and the next one
334              applies  only  to downloads. One of them can be left blank which
335              means infinity.  A single number without any column  means  that
336              the same limit applies to upload and download.
337
338       -u uid Do  not  allow uids below uid to log in (typically, low-numbered
339              uids are used for administrative accounts).  -u  100  is  suffi‐
340              cient  to  deny  access  to  all administrative accounts on many
341              linux boxes, where 99 is the last administrative account. Anony‐
342              mous  FTP  is allowed even if the uid of the ftp user is smaller
343              than uid.  -u 1 denies access only to root accounts. The default
344              is to allow FTP access to all accounts.
345
346       -U umask files:umask dirs
347              Change  the  mask for creation of new files and directories. The
348              default are 133 (files are readable -but not writable- by  other
349              users)  and  022 (same thing for directory, with the execute bit
350              on).  If new files should only be  readable  by  the  user,  use
351              177:077.  If  you  want  uploaded  files  to  be executable, use
352              022:022 (files will be readable  by  other  people)  or  077:077
353              (files will only be readable by their owner).
354
355       -v bonjour name
356              Set  the  Bonjour name of the service (only available on MacOS X
357              when Bonjour support is compiled in).
358
359       -V ip address
360              Allow non-anonymous FTP access only on this  specific  local  IP
361              address.  All  other  IP addresses are only anonymous. With that
362              option, you can have routed IPs for public access, and  a  local
363              IP  (like  10.x.x.x)  for  administration.  You  can also have a
364              routable trusted IP protected by firewall rules, and  only  that
365              IP can be used to login as a non-anonymous user.
366
367       -w     Enable  support  for  the  FXP protocol, for non-anonymous users
368              only.
369
370       -W     Enable the FXP protocol for everyone.  FXP IS AN UNSECURE PROTO‐
371              COL. NEVER ENABLE IT ON UNTRUSTED NETWORKS.
372
373       -x     In  normal  operation  mode,  authenticated users can read/write
374              files beginning with a dot ('.').  Anonymous  users  can't,  for
375              security reasons (like changing banners or a forgotten .rhosts).
376              When '-x' is used, authenticated users can  download  dot-files,
377              but  not overwrite/create them, even if they own them. That way,
378              you can prevent hosted users from messing .qmail files.
379
380       -X     This flag is identical to the previous one (writing dot-files is
381              prohibited),  but in addition, users can't even *read* files and
382              directories beginning with a dot (like "cd .ssh").
383
384       -y per user max sessions:max anonymous sessions
385              This switch enables per-user concurrency limits. Two values  are
386              separated  by  a column. The first one is the max number of con‐
387              current sessions for a single login. The second one is the maxi‐
388              mum number of anonoymous sessions.
389
390       -Y tls behavior
391              -Y 0 (default) disables SSL/TLS security mechanisms.
392              -Y 1 Accept both normal sessions and SSL/TLS ones.
393              -Y  2  refuses  connections  that  aren't using SSL/TLS security
394              mechanisms, including anonymous ones.
395              -Y 3 refuses connections  that  aren't  using  SSL/TLS  security
396              mechanisms, and refuse cleartext data channels as well.
397              The  server  must  have been compiled with SSL/TLS support and a
398              valid certificate must be in place to accept encrypted sessions.
399
400       -z     Allow anonymous users to read  files  and  directories  starting
401              with a dot ('.').
402
403       -Z     Add  safe  guards against common customer mistakes (like chmod 0
404              on their own files) .
405
406
407

AUTHENTICATION

409       Some of the complexities of older servers are left out.
410
411       This version of pure-ftpd can use PAM for authentication. If you  wan't
412       it  to consult any files like /etc/shells or /etc/ftpd/ftpusers consult
413       pam docs. LDAP directories and SQL databases are also supported.
414
415       Anonymous users are authenticated in any of three ways:
416
417       1. The user logs in as "ftp" or "anonymous" and  there  is  an  account
418       called  "ftp" with an existing home directory. This server does not ask
419       anonymous users for an email address or other password.
420
421       2. The user connects to an IP address which resolves to the name  of  a
422       directory  in  /etc/pure-ftpd/pure-ftpd (or a symlink in that directory
423       to a real directory), and there is an account called "ftp" (which  does
424       not need to have a valid home directory). See Virtual Servers below.
425
426       Ftpd  does a chroot(2) to the relevant base directory when an anonymous
427       user logs in.
428
429       Note that ftpd allows remote users to log in as root if the password is
430       known and -u not used.
431
432

UNUSUAL FEATURES

434       If a user's home directory is /path/to/home/./, FTP sessions under that
435       UID will be chroot()ed. In addition, if a  users's  home  directory  is
436       /path/to/home/./directory   the   session   will   be   chroot()ed   to
437       /path/to/home and the FTP session will start in 'directory'.
438
439       As noted above, this pure-ftpd omits several features that are required
440       by  the  RFC  or might be considered useful at first. Here is a list of
441       the most important omissions.
442
443       On-the-fly tar is not supported, for several reasons. I feel that users
444       who  want  to  get  many  files should use a special FTP client such as
445       "mirror," which also supports incremental fetch. I don't want to either
446       add  several  hundred  lines  of code to create tar files or execute an
447       external tar. Finally, on-the-fly tar distorts log files.
448
449       On-the-fly compression is left out too. Most files on an FTP  site  are
450       compressed  already,  and if a file isn't, there presumably is a reason
451       why. (As for decompression: Don't  FTP  users  waste  bandwidth  enough
452       without help from on-the-fly decompression?)
453
454

DIRECTORY ALIASES

456       Shortcuts  for  the  "cd"  command can be set up if the server has been
457       compiled with the --with-diraliases feature.
458
459       To  enable  directory  aliases,  create  a   file   called   /etc/pure-
460       ftpd/pureftpd-dir-aliases  and alternate lines of alias names and asso‐
461       ciated directories.
462
463

ANONYMOUS FTP

465       This server leaves out some of the commands and features that have been
466       used  to  subvert anonymous FTP servers in the past, but still you have
467       to be a little bit careful in order to support  anonymous  FTP  without
468       risk to the rest of your files.
469
470       Make  ~ftp  and all files and directories below this directory owned by
471       some user other than "ftp," and only the .../incoming  directory/direc‐
472       tories  writable  by  "ftp." It is probably best if all directories are
473       writable only by a special group such as "ftpadmin" and "ftp" is not  a
474       member of this group.
475
476       If  you do not trust the local users, put ~ftp on a separate partition,
477       so local users can't hard-link unapproved files into the anonymous  FTP
478       area.
479
480       Use of the -s option is strongly suggested. (Simply add "-s" to the end
481       of the ftpd line in /etc/inetd.conf to enable it.)
482
483       Most other  FTP  servers  require  that  a  number  of  files  such  as
484       ~ftp/bin/ls  exist.  This  server  does  not  require that any files or
485       directories within ~/ftp whatsoever exist, and  I  recommend  that  all
486       such unnecessary files are removed (for no real reason).
487
488       It  may be worth considering to run the anonymous FTP service as a vir‐
489       tual server, to get automatic  logins  and  to  firewall  off  the  FTP
490       address/port to which real users can log in.
491
492       If  your  server is a public FTP site, you may want to allow only 'ftp'
493       and 'anonymous' users to log in. Use  the  -e  option  for  this.  Real
494       accounts  will be ignored and you will get a secure, anonymous-only FTP
495       server.
496
497

MAGIC FILES

499       The files <ftproot>/.banner and .message are magical.
500
501       If there is a file called .banner in the root directory of  the  anony‐
502       mous  FTP  area,  or in the root directory of a virtual host, and it is
503       shorter than 1024 bytes, it is printed upon login. (If the client  does
504       not  log  in explicitly, and an implicit login is triggered by a CWD or
505       CDUP command, the banner is not printed. This is regrettable  but  hard
506       to avoid.)
507
508       If  there  is a file called .message in any directory and it is shorter
509       than 1024 bytes, that file is  printed  whenever  a  user  enters  that
510       directory using CWD or CDUP.
511
512

VIRTUAL SERVERS

514       You  can  run  several  different anonymous FTP servers on one host, by
515       giving the host several IP addresses with different DNS names.
516
517       Here are the steps needed to create an extra server using an  IP  alias
518       on linux 2.4.x, called "ftp.example.com" on address 10.11.12.13. on the
519       IP alias eth0.
520
521       1. Create an "ftp" account if you do not have one. It it  best  if  the
522       account  does  not  have  a valid home directory and shell. I prefer to
523       make /dev/null the ftp account's home directory and shell.   Ftpd  uses
524       this account to set the anonymous users' uid.
525
526       2.  Create a directory as described in Anonymous FTP and make a symlink
527       called /etc/pure-ftpd/pure-ftpd/10.11.12.13 which points to this direc‐
528       tory.
529
530       3. Make sure your kernel has support for IP aliases.
531
532       4. Make sure that the following commands are run at boot:
533
534         /sbin/ifconfig eth0:1 10.11.12.13
535
536       That should be all. If you have problems, here are some things to try.
537
538       First, symlink /etc/pure-ftpd/pure-ftpd/127.0.0.1 to some directory and
539       say "ftp localhost". If that doesn't log you in, the  problem  is  with
540       ftpd.
541
542       If not, "ping -v 10.11.12.13" and/or "ping -v ftp.example.com" from the
543       same host. If this does not work, the problem is with the IP alias.
544
545       Next, try "ping -v 10.11.12.13" from a host on the local ethernet,  and
546       afterwards  "/sbin/arp  -a".  If  10.11.12.13  is  listed among the ARP
547       entries with the correct hardware address, the problem is probably with
548       the  IP  alias.  If  10.11.12.13  is  listed,  but has hardware address
549       0:0:0:0:0:0, then proxy-ARP isn't working.
550
551       If none of that helps, I'm stumped. Good luck.
552
553       Warning: If you setup a virtual hosts, normal users will not be able to
554       login  via  this  name,  so  don't  create link/directory in /etc/pure-
555       ftpd/pure-ftpd for your regular hostname.
556
557

FILES

559       /etc/passwd is used via libc (and PAM is this case), to get the uid and
560       home directory of normal users, the uid and home directory of "ftp" for
561       normal anonymous ftp, and just the uid of "ftp" for virtual ftp hosts.
562
563       /etc/shadow is used like /etc/passwd if shadow support is enabled.
564
565       /etc/group is used via libc, to get  the  group  membership  of  normal
566       users.
567
568       /proc/net/tcp  is  used to count existing FTP connections, if the -c or
569       -p options are used
570
571       /etc/pure-ftpd/pure-ftpd/<ip address> is the base directory for the <ip
572       address>  virtual ftp server, or a symbolic link to its base directory.
573       Ftpd does a chroot(2) into this directory when a user logs  in  to  <ip
574       address>, thus symlinks outside this directory will not work.
575
576       ~ftp  is  the  base  directory for "normal" anonymous FTP.  Ftpd does a
577       chroot(2) into this directory when an anonymous user logs in, thus sym‐
578       links outside this directory will not work.
579
580

LS

582       The  behaviour  of  LIST  and  NLST is a tricky issue. Few servers send
583       RFC-compliant responses to LIST, and some clients depend on non-compli‐
584       ant responses.
585
586       This server uses glob(3) to do filename globbing.
587
588       The  response  to NLST is by default similar to that of ls(1), and that
589       to LIST is by default similar to that of ls -l or ls -lg on  most  Unix
590       systems,  except  that  the "total" count is meaningless.  Only regular
591       files, directories and symlinks are shown. Only  important  ls  options
592       are supported:
593
594       -1     Undoes -l and -C.
595
596       -a     lists even files/directories whose names begin with ".".
597
598       -C     lists  files in as many colums as will fit on the screen. Undoes
599              -1 and -l.
600
601       -d     lists argument directories' names rather their contents.
602
603       -D     List files beginning with a  dot  ('.')  even  when  the  client
604              doesn't append the -a option to the list command.
605
606       -F     appends '*' to executable regular files, '@' to symlinks and '/'
607              to directories.
608
609       -l     shows various details about the file, including file group.  See
610              ls(1) for details. Undoes -1 and -C.
611
612       -r     reverses  the  sorting order (modifies -S and -t and the default
613              alphabetical ordering).
614
615       -R     recursively descends into subdirectories of the argument  direc‐
616              tories.
617
618       -S     Sorts by file size instead of by name. Undoes -t.
619
620       -t     Sorts by file modification time instead of by name. Undoes -S.
621
622

PROTOCOL

624       Here are the FTP commands supported by this server.
625       ABOR  NOOP  ALLO  USER PASS QUIT SYST PORT EPRT PASV EPSV SPSV PWD XPWD
626       CWD XCWD CDUP XCUP HELP RETR REST DELE STOR APPE STOU MKD XMKD RMD XRMD
627       LIST  NLST  TYPE MODE STRU XDBG MDTM SIZE RNFR RNTO STAT MLST MLSD FEAT
628       ESTA ESTP AUTH TLS PBSZ PROT OPTS UTF8 OPTS MLST SITE IDLE  SITE  CHMOD
629       SITE HELP SITE TIME SITE UTIME
630
631

BUGS

633       Please  report  bugs  to the mailing-list (see below).  Pure-FTPd looks
634       very stable and is used on production servers. However it comes with no
635       warranty and it can have nasty bugs or security flaws.
636
637

HOME PAGE

639       http://www.pureftpd.org/
640

NEW VERSIONS

642       See the mailing-list on http://www.pureftpd.org/ml/.
643
644

AUTHOR AND LICENSE

646       Troll-FTPd was written by Arnt Gulbrandsen <agulbra@troll.no> and copy‐
647       right 1995-2002 Troll Tech AS, Waldemar Thranes gate 98B, N-0175  Oslo,
648       Norway, fax +47 22806380.
649
650       Pure-FTPd  is  (C)opyleft  2001-2010  by Frank DENIS <j at pureftpd dot
651       org> and the Pure-FTPd team.
652
653       This software is covered by the BSD license.
654
655       Contributors:
656        Arnt Gulbrandsen,
657        Troll Tech AS,
658        Janos Farkas,
659        August Fullford,
660        Ximenes Zalteca,
661        Patrick Michael Kane,
662        Arkadiusz Miskiewicz,
663        Michael K. Johnson,
664        Kelley Lingerfelt,
665        Sebastian Andersson,
666        Andreas Westin,
667        Jason Lunz,
668        Mathias Gumz,
669        Claudiu Costin,
670        Ping,
671        Paul Lasarev,
672        Jean-Mathieux Schaffhauser,
673        Emmanuel Hocdet,
674        Sami Koskinen,
675        Sami Farin,
676        Luis Llorente Campo,
677        Peter Pentchev,
678        Darren Casey,
679        The Regents of the University of California,
680        Theo de Raadt (OpenBSD),
681        Matthias Andree,
682        Isak Lyberth,
683        Steve Reid,
684        RSA Data Security Inc,
685        Trilucid,
686        Dmtry Lebkov,
687        Johan Huisman,
688        Thorsten Kukuk,
689        Jan van Veen,
690        Roger Constantin Demetrescu,
691        Stefano F.,
692        Robert Varga,
693        Freeman,
694        James Metcalf,
695        Im Eunjea,
696        Philip Gladstone,
697        Kenneth Stailey,
698        Brad Smith,
699        Ulrik Sartipy,
700        Cindy Marasco,
701        Nicolas Doye,
702        Thomas Briggs,
703        Stanton Gallegos,
704        Florin Andrei,
705        Chan Wilson,
706        Bjoern Metzdorf,
707        Ben Gertzfield,
708        Akhilesch Mritunjai,
709        Dawid Szymanski,
710        Kurt Inge Smadal,
711        Alex Dupre,
712        Gabriele Vinci,
713        Andrey Ulanov,
714        Fygul Hether,
715        Jeffrey Lim,
716        Ying-Chieh Liao,
717        Johannes Erdfelt,
718        Martin Sarfy,
719        Clive Goodhead,
720        Aristoteles Pagaltzis,
721        Stefan Hornburg,
722        Mehmet Cokcevik,
723        Brynjar Eide,
724        Torgnt Wernersson,
725        Banhalmi Csaba,
726        Volodin D,
727        Oriol Magrané,
728        Jui-Nan Lin,
729        Patrick Gosling,
730        Marc Balmer,
731        Rajat Upadhyaya / Novell,
732        Christian Cier-Zniewski,
733        Wilco Baan Hofman.
734
735

SEE ALSO

737       ftp(1),  pure-ftpd(8)  pure-ftpwho(8)   pure-mrtginfo(8)   pure-upload‐
738       script(8)   pure-statsdecode(8)   pure-pw(8)  pure-quotacheck(8)  pure-
739       authd(8)
740
741       RFC 959, RFC 2228, RFC 2389 and RFC 2428.
742
743
744
745Pure-FTPd Team                      1.0.32                        pure-ftpd(8)
Impressum