development.notes
上传用户:pycemail
上传日期:2007-01-04
资源大小:329k
文件大小:5k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2. The purpose of this file is to record and log specific technical notes
  3. regarding proftpd development; both current and "to-do" items.  The file
  4. is _not_ distributed with tarball source code releases, and only exists
  5. inside the CVS repository.  If you use this file to annotate your work,
  6. please make sure you follow the existing format.
  7. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  8. [ Legend: - = "to do", + = "done", x = "idea has been scrapped" ]
  9. GENERAL TODO FOR 1.2.0:
  10.   + Configurable logging, including formats, command levels and
  11.     files.
  12.   + "Global" configuration directives.  New <Global> context??
  13.     New <Global> directive block, untested.
  14.   + Limit connections per IP address in some configurable fashion.
  15.     MaxClientsPerHost directive, by vlad@elis.tasur.edu.ru
  16.   + Directive to disable wtmp, xferlog and syslog logging.
  17. 8/13/98 JSS:
  18.   
  19.   - Document the following directives:
  20.     +<Global>
  21.     +MaxInstances
  22.     +MaxClientsPerHost
  23.     +SystemLog
  24.     +LogFormat
  25.     +ExtendedLog
  26.     UtmpLog
  27.     
  28. 7/19/98 JSS:
  29.   + LsDefaultOptions to specify default 'options' that will be applied
  30.     to LIST/NLST/STAT commands in mod_ls.c
  31.   + SyslogFacility directive, to configure which facility proftpd
  32.     uses for ALL logging (including auth)
  33.   + DirFakeMode directive, to specify "fake" permissions shown in 
  34.     directory listings.
  35. 7/14/98 JSS:
  36.   + Make Allow/Deny CIDR
  37. 7/10/98 JSS:
  38.   + Add -t argument to LIST/NLST, sort by time instead of name.
  39.   + Add new directive (LoginPasswordPrompt?) to cause proftpd to skip
  40.     password request if login will be denied regardless of password.
  41.   + New directives to document:
  42.     PersistentPasswd
  43.     AuthUserFile
  44.     AuthGroupFile
  45.     DirFakeUser
  46.     DirFakeGroup
  47.     RootLogin
  48.     IdentLookups
  49.     ShowSymlinks  (altered default in 1.1.5)
  50. 6/1/98 JSS:
  51. - TODO:
  52.   + Rewrite i/o & buffer code.  It was originally somewhat of a
  53.     "exersise" in async i/o w/out using SIGIO/SIGURG or threads.
  54.     Neat in concept, poor in execution.  Creates massives problems
  55.     with dynamically generated data connections (i.e. recursive
  56.     directory listing), because all the data must be buffered before
  57.     it can be sent.  Rather, it would now be better to go to a completely
  58.     sync i/o model, using SIGURG to detect transfer interruption.
  59. 5/24/98 JSS:
  60. - TODO:
  61.   + "Dyanmic" static <Directory> blocks.  Using "<Directory ~/ftp>"
  62.     should be applied to the currently authenticated user AFTER login.
  63.     Similar to how .ftpaccess works, but statically configured in the
  64.     main configuration file.
  65.   + AuthAliasOnly directive: forces a particular configuration to ONLY
  66.     authenticate aliased usernames (only the left-most argument of
  67.     `UserAlias').  All others should be treated as if the user does
  68.     not exist for that config block.  If applied to a <VirtualHost>
  69.     or main config, this effectively means that non-alias usernames
  70.     do not exist AT ALL.  This would allow configurations where an
  71.     anonymous context runs as a _real user_ who also has normally
  72.     authenticated access to the system.  i.e.:
  73.     # assuming user 'frank' is a real user
  74.     <Anonymous ~frank/ftp>
  75.       User frank
  76.       Group users
  77.       UserAlias anonymous frank
  78.       UserAlias ftp frank
  79.       AuthAliasOnly on
  80.     </Anonymous>
  81.     # now, if a user logs in as ftp or anonymous, they are jailed
  82.     # into ~frank/ftp, and the daemon runs as frank.users.
  83.     # If the user logs in as frank, they are authenicated normally
  84.     # and not jailed.
  85.   + Expand DefaultRoot so that a root directory can be specified as
  86.     "~/anon-ftp", so that all logins (for which DefaultRoot matches)
  87.     are jailed into the authenticated user's $HOME/anon-ftp.
  88.   + AnonymousGroup group-expression: makes all usernames matching
  89.     the group-expression explicitly anonymous; no password is
  90.     required.  Additionally, those forced anonymous by this directive
  91.     would be jailed into the proper matching DefaultRoot if one
  92.     exists, otherwise jailed into their home directory.  Some extra
  93.     security should be placed on this so that user's w/out home
  94.     directories (or DefaultRoot) are not allowed access.
  95. - Specifying a `Port 0' (i.e. non-existant port) in either the main
  96. configuration or in a VirtualHost causes proftpd to not create a socket or
  97. bind to _any_ address for the given config.  This can be used to
  98. selectively disable certain virtualhosts w/out commenting out large
  99. portions of config.  Rather, the config still applies, however there is no
  100. possibility of network activity taking place on the associated
  101. configuration.  Intended purpose is really to allow the "main
  102. configuration" to not bind to any ip or port (although this would have no
  103. effect if SocketBindTight was off).  TODO: Document this in
  104. reference.html.
  105. - Created this file in the proftpd-1.1 source tree and added to cvs.  Top
  106. of file should not be altered and should always retain existing text
  107. describing the contents of this file.