development.notes
上传用户:pycemail
上传日期:2007-01-04
资源大小:329k
文件大小:5k
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- The purpose of this file is to record and log specific technical notes
- regarding proftpd development; both current and "to-do" items. The file
- is _not_ distributed with tarball source code releases, and only exists
- inside the CVS repository. If you use this file to annotate your work,
- please make sure you follow the existing format.
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- [ Legend: - = "to do", + = "done", x = "idea has been scrapped" ]
- GENERAL TODO FOR 1.2.0:
- + Configurable logging, including formats, command levels and
- files.
- + "Global" configuration directives. New <Global> context??
- New <Global> directive block, untested.
- + Limit connections per IP address in some configurable fashion.
- MaxClientsPerHost directive, by vlad@elis.tasur.edu.ru
- + Directive to disable wtmp, xferlog and syslog logging.
- 8/13/98 JSS:
-
- - Document the following directives:
- +<Global>
- +MaxInstances
- +MaxClientsPerHost
- +SystemLog
- +LogFormat
- +ExtendedLog
- UtmpLog
-
- 7/19/98 JSS:
- + LsDefaultOptions to specify default 'options' that will be applied
- to LIST/NLST/STAT commands in mod_ls.c
- + SyslogFacility directive, to configure which facility proftpd
- uses for ALL logging (including auth)
- + DirFakeMode directive, to specify "fake" permissions shown in
- directory listings.
- 7/14/98 JSS:
- + Make Allow/Deny CIDR
- 7/10/98 JSS:
- + Add -t argument to LIST/NLST, sort by time instead of name.
- + Add new directive (LoginPasswordPrompt?) to cause proftpd to skip
- password request if login will be denied regardless of password.
- + New directives to document:
- PersistentPasswd
- AuthUserFile
- AuthGroupFile
- DirFakeUser
- DirFakeGroup
- RootLogin
- IdentLookups
- ShowSymlinks (altered default in 1.1.5)
- 6/1/98 JSS:
- - TODO:
- + Rewrite i/o & buffer code. It was originally somewhat of a
- "exersise" in async i/o w/out using SIGIO/SIGURG or threads.
- Neat in concept, poor in execution. Creates massives problems
- with dynamically generated data connections (i.e. recursive
- directory listing), because all the data must be buffered before
- it can be sent. Rather, it would now be better to go to a completely
- sync i/o model, using SIGURG to detect transfer interruption.
- 5/24/98 JSS:
- - TODO:
- + "Dyanmic" static <Directory> blocks. Using "<Directory ~/ftp>"
- should be applied to the currently authenticated user AFTER login.
- Similar to how .ftpaccess works, but statically configured in the
- main configuration file.
- + AuthAliasOnly directive: forces a particular configuration to ONLY
- authenticate aliased usernames (only the left-most argument of
- `UserAlias'). All others should be treated as if the user does
- not exist for that config block. If applied to a <VirtualHost>
- or main config, this effectively means that non-alias usernames
- do not exist AT ALL. This would allow configurations where an
- anonymous context runs as a _real user_ who also has normally
- authenticated access to the system. i.e.:
- # assuming user 'frank' is a real user
- <Anonymous ~frank/ftp>
- User frank
- Group users
- UserAlias anonymous frank
- UserAlias ftp frank
- AuthAliasOnly on
- </Anonymous>
- # now, if a user logs in as ftp or anonymous, they are jailed
- # into ~frank/ftp, and the daemon runs as frank.users.
- # If the user logs in as frank, they are authenicated normally
- # and not jailed.
- + Expand DefaultRoot so that a root directory can be specified as
- "~/anon-ftp", so that all logins (for which DefaultRoot matches)
- are jailed into the authenticated user's $HOME/anon-ftp.
- + AnonymousGroup group-expression: makes all usernames matching
- the group-expression explicitly anonymous; no password is
- required. Additionally, those forced anonymous by this directive
- would be jailed into the proper matching DefaultRoot if one
- exists, otherwise jailed into their home directory. Some extra
- security should be placed on this so that user's w/out home
- directories (or DefaultRoot) are not allowed access.
- - Specifying a `Port 0' (i.e. non-existant port) in either the main
- configuration or in a VirtualHost causes proftpd to not create a socket or
- bind to _any_ address for the given config. This can be used to
- selectively disable certain virtualhosts w/out commenting out large
- portions of config. Rather, the config still applies, however there is no
- possibility of network activity taking place on the associated
- configuration. Intended purpose is really to allow the "main
- configuration" to not bind to any ip or port (although this would have no
- effect if SocketBindTight was off). TODO: Document this in
- reference.html.
- - Created this file in the proftpd-1.1 source tree and added to cvs. Top
- of file should not be altered and should always retain existing text
- describing the contents of this file.