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] [-2] [-4] [-6] [-a gid] [-A] [-b] [-B] [-c clients]
11       [-C cnx/ip] [-d [-d]] [-D] [-e] [-E] [-f facility] [-F  fortunes  file]
12       [-g pidfile] [-G] [-H] [-i] [-I] [-j] [-J ciphers] [-k percentage] [-K]
13       [-l 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       -2 --certfile
26       -4 --ipv4only
27       -6 --ipv6only
28       -a --trustedgid
29       -A --chrooteveryone
30       -b --brokenclientscompatibility
31       -B --daemonize
32       -c --maxclientsnumber
33       -C --maxclientsperip
34       -d --verboselog
35       -D --displaydotfiles
36       -e --anonymousonly
37       -E --noanonymous
38       -f --syslogfacility
39       -F --fortunesfile
40       -g --pidfile
41       -G --norename
42       -h --help
43       -H --dontresolve
44       -i --anonymouscantupload
45       -I --maxidletime
46       -j --createhomedir
47       -J --tlsciphersuite
48       -k --maxdiskusagepct
49       -K --keepallfiles
50       -l --login
51       -L --limitrecursion
52       -m --maxload
53       -M --anonymouscancreatedirs
54       -n --quota
55       -N --natmode
56       -o --uploadscript
57       -O --altlog
58       -p --passiveportrange
59       -P --forcepassiveip
60       -q --anonymousratio
61       -Q --userratio
62       -r --autorename
63       -R --nochmod
64       -s --antiwarez
65       -S --bind
66       -t --anonymousbandwidth
67       -T --userbandwidth
68       -u --minuid
69       -U --umask
70       -v --bonjour
71       -V --trustedip
72       -w --allowuserfxp
73       -W --allowanonymousfxp
74       -x --prohibitdotfileswrite
75       -X --prohibitdotfilesread
76       -y --peruserlimits
77       -Y --tls
78       -z --allowdotfiles
79       -Z --customerproof
80
81

DESCRIPTION

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

OPTIONS

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

AUTHENTICATION

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

UNUSUAL FEATURES

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

DIRECTORY ALIASES

463       Shortcuts for the "cd" command can be set up if  the  server  has  been
464       compiled with the --with-diraliases feature.
465
466       To   enable   directory   aliases,  create  a  file  called  /etc/pure-
467       ftpd/pureftpd-dir-aliases and alternate lines of alias names and  asso‐
468       ciated directories.
469
470

ANONYMOUS FTP

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

MAGIC FILES

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

VIRTUAL SERVERS

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

FILES

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

LS

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

PROTOCOL

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

BUGS

640       Please report bugs to the mailing-list (see  below).   Pure-FTPd  looks
641       very stable and is used on production servers. However it comes with no
642       warranty and it can have nasty bugs or security flaws.
643
644

HOME PAGE

646       http://www.pureftpd.org/
647

NEW VERSIONS

649       See the mailing-list on http://www.pureftpd.org/ml/.
650
651

AUTHOR AND LICENSE

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

SEE ALSO

745       ftp(1),   pure-ftpd(8)   pure-ftpwho(8)  pure-mrtginfo(8)  pure-upload‐
746       script(8)  pure-statsdecode(8)  pure-pw(8)   pure-quotacheck(8)   pure-
747       authd(8)
748
749       RFC 959, RFC 2228, RFC 2389, RFC 2428 and RFC 4217.
750
751
752
753Pure-FTPd Team                      1.0.47                        pure-ftpd(8)
Impressum