v.7, 990307
        
FTP4ALL - FAQ

   Frequently Asked Questions
   by the FTP4ALL development team

   Q: What is FTP4ALL ?
   A: FTP4ALL is a ftp daemon for unix systems. It runs under any normal
   user account and doesn't require any special rights to start. It has
   its own permission and user handling, and is mainly independent from
   the operating system it runs under (although it inherits any
   limitations of the user account under whcih it is running).

   Q: Why should I use FTP4ALL, if there is <any ftp daemon> ?
   A: First, every other ftp daemon I know needs special privileges to
   run it. Then, there are system-integrated daemons which are used to
   access your shell accounts with the FTP protocol. FTP4ALL is
   different: you can generally run FTP4ALL from any account, without
   root access, with no power hit as compared with other advanced
   ftpdaemons.

   Q: Why shouldn't I use FTP4ALL ?
   A: If you're looking for a wu-ftpd type of daemon, which allows for
   such things as individual home directories, then FTP4ALL is not
   (currently) for you. Different ftp daemons are suited to different
   tasks, and you might wish to consider a daemon such as proftpd if your
   requirements are for tasks such as www-hosting. Generally, FTP4ALL is
   suited for any task that is not "system-integrated", by which we mean
   that FTP4ALL does not lend itself to allowing access by multiple users
   to system shell accounts.

   Q: Mhhh... sounds like a great deal, what does it cost ?
   A: FTP4ALL is distributed under the GPL, and is free if you don't use
   it commercially. Please read and understand the conditions of this
   licence.

   Q: Are there any FTP4ALL related limitations ?
   A: No, just the normal limitations that applies for user accounts
   under your unix environment. The only possible limitations I can think
   of are disk quota limitation and limitations if you want to bind a
   daemon to ports below 1024.

   Q: I found/got this neat file - where can I get the latest version of
   FTP4ALL ?
   A: [1]http://www.ftp4all.de/ and [2]ftp://ftp.ftp4all.de/pub/ftp4all/.

   Q: Are there any beta versions ? How could I become a beta tester ?
   A: All the latest beta versions are available from the ftp site. Take
   a look at the [3]ftp://ftp.ftp4all.de/pub/ftp4all/beta/ directory.

   Q: Tell me about the FTP4ALL concept.
   A: What you've read so far will already have given you a good
   indication as to the f4a concept, and you can always find more
   information on the FTP4ALL webpage. To sum it up in one sentence:
   FTP4ALL provides a solid and stable ftp daemon that allows full
   configuration and a means for developing powerful "addons" to
   supplement the power of the daemon.

   Q: Now, how do I install FTP4ALL ?
   A: First, get the latest distribution archive from our website. Then
   unpack it (tar -xfvz ftpd-2.xx.tar.gz), and run the configure
   (./configure) script. It asks you one question (read the next question
   ahead), which you have to answer. If this is your first time
   installing FTP4ALL just answer "no" to this question.
   Then run make (just type make). It SHOULD compile without any error
   messages and store the binaries in the binary directory (./bin/).
   Inside this directory are example ftpd.conf, users and groups files.
   Now you can edit the ftpd.conf file (see
   [4]http://www.ftp4all.de/config.html), and then run the "ftpd" binary.

   Q: What should I do on the first login ?
   A: The first thing you should to is to set a new root password using
   the [5]SITE PASS command. You should also assign an owner to the root
   directory by using the [6]SITE CHOWN command. Next you should assign
   permissions to the root directory using the [7]SITE CHMOD command.
   After verifying the result using the [8]SITE MOD command you may also
   want to update the default permissions for newly created files and
   directories, do so with the [9]umaskuser configuration option. And
   also you may want to set up the basic directory structure, to ease
   this set the umaskroot option in the configuration file before
   creating directories. Next you may want to check out additional
   options on the FTP4ALL homepage. Yes, it does sound a little complex,
   but before long all this will become second nature to you. :)

   Q: What is the "want DES encryption (y/n) ?" thing good for ?
   A: FTP4ALL has the ability to encrypt the users and groups file on
   your shell account, to protect it from hackers or curious system
   administrators. It is also sometimes used to hide the ftp4all daemon -
   to do this, you should rename the groups and users file and then use
   encryption. Do not mix DES user/group file encryption and DES password
   hashin in your userfile. For further information refer to
   [10]http://www.ftp4all.de/config.html#userkey.

   Q: Why can't I upload any files with long filenames ?
   Q: What is this "edit variable MAXFILENAMELENGTH in src/tweak.h now"
   thing ?
   A: As I said before, FTP4ALL uses its own permission system. The
   permissions are stored in permission files, usualy named ".perm". This
   file is created by the daemon in any directory to which ftp4all has
   write access. It contains a list with the names and permissions of
   each file in the directory. The filename field in this file is limited
   by the MAXFILENAMELENGTH variable. So, if you want to have files with
   filenames of more than 32 characters (default), you should edit this
   constant before typing "make".

   Q: So, how do I make these .perm files ?
   A: You don't. The daemon will do it for you, whenever you use the
   [11]SITE CHMOD command, or according to the defaults set in the
   configuration file. You should read and understand all the information
   related to the [12]configuration file for a detailed explanation of
   how the permissions system works.

   Q: Is there a port of FTP4ALL for the ... operating system ?
   A: Probably not. ;)
   It should compile on nearly all unix systems, at least with only minor
   modifications. There is currently no Windows-32bit version, but if you
   are a skilled programmer and would like to create one, please contact
   us. An Amiga version of ftp4all is also available; refer to our
   webpage for the address.

   Q: I'd like to port FTP4ALL to the ... operating system.. May I ?
   A: Great ! :) Just get in touch with us. But if you want to port it
   you should work on your own (or contact us before if you need help)
   and stay in the FTP4ALL "boundaries" :)
   Q: I've already ported FTP4ALL to the ... operating system !
   A: Even more great ! :), Please drop us a line at
   [13]ftp4all@ftp4all.de and let us know details (Operating system, URL,
   version, differences).

   Q: How can I contribute to the FTP4ALL project ?
   A: If you are experienced in writting clean ANSI-C code for unix
   operating systems and willing to contribute, please contact us as soon
   as possible :) Especially people with platform-related knowledge would
   help us to make FTP4ALL more compatible and easier to port.
   However, any new features would also be considered for inclusion
   within the FTP4ALL project so long as the c code you write is of high
   quality. We don't want people who like to put everything into the
   daemon (zipchecker, site give, nuke, ...).
   If you cannot write C, but you want to do something else, contact us,
   too, for example if you can write in another language, you can write a
   configuration system or keep track of the documents, or write a better
   FAQ :)

   Q: Why isn't there a zipchecker/unfoline setting/<insert script>
   included in the ftp4all setup ?
   A: It is at odds with the FTP4ALL concept to include everything
   imaginable into the daemon. Unlike some other daemons, FTP4ALL allows
   the siteop instead to implement external scripts for functionality
   such as zip checking, user statistics, and so forth. A collection of
   these scripts can be found at [14]http://www.ftp4all.de/addons/.

   Q: I'd like to write my own addons. How should I start ?
   A: Addons can be written in any language you please. You might wish to
   take a look at existing addons (see above) before beginning work on
   your own scripts. Popular languages for addons include C, Perl, and
   simple shellscript.

   Q: Why is so much of the FTP4ALL syntax so different from glftpd /
   rftpd / gftpd / <insert daemon name here> ?
   A: FTP4ALL's syntax is designed for power, simplicity and consistency,
   and we feel that it provides the most logical means for controlling a
   site and its users. However, if you don't like it, write your own !
   Because FTP4ALL provides sophisticated scripting functionality, it is
   a simple process to override any internal scripts with your own, that
   work as you would like them to. For a simple example of such
   "overriding", take a look at Overhead's "adduser" script at
   [15]http://www.ftp4all.de/addons/adduser.

   Q: How do I set a new password and what can I use as password ?
   A: You can set your password using the SITE PASSWD command (refer to
   [16]http://www.ftp4all.de/sitecmds.html#passwd). As normal user you
   can only set your password, as superuser and users with the "edituser"
   flag you can set the password for any user, and as groupop you can set
   the password for all users of your primary group. You can use any type
   of password you can use as shell password - normaly an alphanumeric
   string which may additionaly contain a few special characters. (do a
   man passwd on your unix shell).
   When changing the password using the SITE PASSWD you may experience
   problems if your ftp client filters or processes such special
   characters. Then try changing it using another ftp client or if you
   are experienced with the FTP protocol you may want to login using
   telnet and change it then.
   FTP4ALL uses the DES encryption routine to hash your passwords,
   meaning that a zero-string (a 56 bit string containing only zeros) is
   encrypted with your password. Then if you enter your password this
   encrypted string is decrypted with your password, and if the cleartext
   is again a zero string your password was correct.
   Plans are to implement better hash routine for FTP4ALL, which makes it
   more secure and working the same way on all unix systems (MD5 or
   SHA-1).

   Q: What's with these weird ratios ? limits ?
   A: For historical reasons, and also for maximum configurability,
   FTP4ALL represents limits as a percentage, rather than as a ratio.
   That is, if you want a user to have a 1:3 ratio (they need to upload
   one megabyte to download 3 megabytess) then they have to upload 33% of
   whatever they want to download, so their limit is 33. If you want a
   user to get twice as many megabytess downloads for whatever they
   upload, their limit should be 50. If you want them to be on a 1:5
   ratio, set the limit to 20. See, it's simple. You can also compute it
   using a simple formula: If the ratio is a:b then the limit is (a *
   100) / b. Example: Ratio 2:3 will become (2 * 100) / 3 = 66.

   Q: What's this stuff I see about templates ?
   A: Templates simply provide a simple way for you to add users to your
   system. Any user can be used as a template, and by doing "site user
   add <newuser> <existinguser>" it is possible to create a new user that
   will inherit all of the characteristics of the old user. Also, users
   can be explicitly set to be template users - see
   [17]http://www.ftp4all.de/sitecmds.html#user for further information.

   Q: I do a "site chmod", but it doesn't change the permissions of the
   files. Likewise, "site chown" doesn't seem to have any effect.
   A: First, check that you have the syntax right. Assuming that you do,
   this is probably caused by problems with permissions at the shell
   level. For example, you might be running your daemon as a user that
   does not have sufficient permissions to write the .perm file into the
   file directories. Check the permissions, chown if necessary from your
   shell, and try again; all should be fixed.

   Q: I can't use FTP4ALL with my CD-ROM drive ? I think it's because of
   this permission files, because it displays nobody as owner, and I
   cannot access it. How to fix it ?
   Q: I am dumb and cannot write .perm files to my CD-ROM !!!
   A: FTP4ALL has it's own permissions, and yes it doesn't know how to
   handle a directory which misses the permission file. However, there is
   a special option to mount directories read only into the directory
   tree, called the cdpath-option, which is set in the configuration
   file.
   More information: [18]http://www.ftp4all.de/config.html#cdpath.

   Q: F4A was working fine, but all of a sudden nobody can login anymore
   (even though occasionally logins will succeed and everything works
   fine then)
   A: Check the groups-file. At least in 2.23 and 2.24 this might occur
   when the groups file is empty (i.e. it has only the comment line and
   states that there are 0 groups). If this is the case, try to recover
   the entries (e.g. by just typing them in - see docs for format) and
   try to login again. Everything should work fine again.

   Q: Everytime I change the configuration file I have to shutdown the
   site to update information. Is this normal ?
   A: Yes. One way to update the information is to shutdown the site
   ([19]SITE SHUTDOWN recommended) and restart it. If you want to update
   information while your site is running you may wish to use the SITE
   RECONFIG command.
   (more information [20]http://www.ftp4all.de/sitecmds.html#reconfig)

   Q: When I try to start the daemon, it just outputs one line and then
   quits out, and I can't ftp in to the selected port. Any ideas ?
   A: Generally (read: almost always) this is caused by an error in the
   configuration file. Look for a file called "ftpd.err", and read what's
   in there. In 90% of cases there will be a simple problem that is easy
   to fix.

   Q: I think I've found a bug, what should I do about it ?
   A: Please be sure to check all other questions in this FAQ, and the
   webpage, also be sure you've installed the newest version, since the
   FTP4ALL team works continuously to fix bugs. If you know about it,
   chances are that we do too...
   If you still think it's a bug email us as soon as possible with a
   detailed description of your system, your site, your ftpd
   configuration options, the programs running on the system, when the
   bug appears, and most importantly, how to reproduce the bug.
   Please don't harrass us to get bugs fixed- we are only human and get
   no money for our work on the daemon -- but we do what we can. If you
   are familar with FTP4ALL, and you have a suggestion how to fix the bug
   that you're encountering, please do include any suggestions.
   The second thing to do is to set the environment-variable "f4a_deb"
   (no specific value) and send the ftp4all-debug and the core-file (if
   one has been created) to us.

   Q: I want to be able to have lots of people log in with the same user
   name and have different credits maintained for each different login
   (based upon the IP of the connection). Can I do that ?
   A: Not yet. FTP4ALL has not been designed for "mp3/mp3" type accounts,
   and this functionality is not directly implemented at this time.
   However, support of this nature is being worked on currently (possibly
   through external scripts). Check back regularly at our page for
   further information.

   Q: I wrote a nice addon and I want to publish it... but how ?
   A: Please package the addon with a short description and email it to
   the address below. We will contact you to let you know whether it has
   been accepted into the addon section. It might be possible for you to
   upload the file to us, but do please contact us by mail or IRC
   beforehand.

   Q: Why don't you include this or that or fix that stupid bug earlier ?
   A: Suggestions are allowed, and we have a internal "wish-list". But
   please don't bug us to program a particular feature for you. We are
   currently a team of 4 people (two programmers, two supporters), mostly
   students and we are not paid for this work. And our ToDo-list is quite
   full all the time.
   If you can't wait for the next stable version you can always download
   betas of ftp4all ([21]ftp://ftp.ftp4all.de/pub/ftp4all/beta).

   Q: I want to keep an up-to-date mirror of your FTP4ALL page. May I ?
   A: If you would like to, please do so, but the discussion section
   should remain on our main site (www.ftp4all.de). Once your mirror is
   up, please [22]email us, so we can add it to our page.

   Q: How do I contact the FTP4ALL development team ?
   A: You can reach us via email, [23]ftp4all@ftp4all.de
   You can reach us via our webbbs, which is often the most effective way
   to get help, often within a hour or less,
   [24]http://www.ftp4all.de/cgi-bin/f4a.cgi
   You can reach us via irc, efnet..: #ftp4all (contact one of the ops)

   Before contacting us for help, please read the all the important parts
   of the webpage.
   If you email us, you may get more than one answer, from different
   developers.

References

   1. http://www.ftp4all.de/
   2. ftp://ftp.ftp4all.de/pub/ftp4all/
   3. ftp://ftp.ftp4all.de/pub/ftp4all/beta/
   4. http://www.ftp4all.de/config.html
   5. http://www.ftp4all.de/sitecmds.html#pass
   6. http://www.ftp4all.de/sitecmds.html#chown
   7. http://www.ftp4all.de/sitecmds.html#chmod
   8. http://www.ftp4all.de/sitecmds.html#mod
   9. http://www.ftp4all.de/config.html#umaskuser
  10. http://www.ftp4all.de/config.html#userkey
  11. http://www.ftp4all.de/sitecmds.html#chmod
  12. http://www.ftp4all.de/config.html
  13. mailto:ftp4all@ftp4all.de
  14. http://www.ftp4all.de/addons/
  15. http://www.ftp4all.de/addons/adduser
  16. http://www.ftp4all.de/sitecmds.html#passwd
  17. http://www.ftp4all.de/sitecmds.html#user
  18. http://www.ftp4all.de/config.html#cdpath
  19. http://www.ftp4all.de/sitecmds.html#shutdown
  20. http://www.ftp4all.de/sitecmds.html#reconfig
  21. ftp://ftp.ftp4all.de/pub/ftp4all/beta/
  22. mailto:ftp4all@ftp4all.de
  23. mailto:ftp4all@ftp4all.de
  24. http://www.ftp4all.de/cgi-bin/f4a.cgi
