home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / pftpd108.zip / penftpd.doc < prev    next >
Text File  |  1995-11-01  |  11KB  |  249 lines

  1.                                     Penftpd
  2.                                     =======
  3.                            (c) 1995 by Paul Wagland.
  4.                           penguin@tartarus.uwa.edu.au
  5.  
  6. First lets get the copyright out of the way....
  7. You may not disassemble, or reverse-engineer in any other fashion, this program.
  8. You may not have multiple copies of this program running at the same time,
  9.     unless you have a multiple licences, or a site license.
  10. You may have multiple copies on this program on many machines, as long as
  11.     precautions are taken such that only one copy of the program can be
  12.     running at any one time.
  13. THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
  14. OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  15.  
  16. DISTRIBUTION CONDITIONS
  17. You are free to distribute this shareware version of Penftpd as long as the
  18. following conditions are met:
  19.   1) The distributed archive must contain ALL the files listed below, and
  20.      no others.
  21.   2) The contents of this archive are NOT MODIFIED in any way.
  22.   3) This version is not to be sold.  However, a reasonable disk copying fee
  23.      is permitted.
  24.   4) This version is not to be bundled with a commercially sold package
  25.      without permission from the authors.
  26.  
  27. The contents of this archive should include:
  28. convert.doc  -- details on how to use convert.exe
  29. convert.exe  -- Converts from IBM's ftpd files to penftpd
  30. ftppass.doc  -- details on how to use ftppass.exe
  31. ftppass.exe  -- Changes passwords in penftpd's ini files
  32. penftpd.doc  -- details on how to use penftpd.exe
  33. penftpd.exe  -- The FTP daemon
  34. useredit.doc -- details on how to use useredit.exe
  35. useredit.exe -- Edit user details.
  36. register.doc -- details on how to register penftpd.
  37.  
  38. If you didn't receive all of these parts contact the site from which you
  39. received penftpd and ask them to get the full version.
  40.  
  41. Introduction:
  42. =============
  43. Penftpd is a FTP daemon, designed to run under OS/2, whilst taking full
  44. advantage of the OS/2 programming paradigm.  Examples of this include using
  45. threads to handle each connection, instead of creating a new process.
  46.  
  47. Penftpd is shareware, so if you use the program you are asked to please
  48. register it. See the accompaning file "register.doc" for information.
  49.  
  50. The following table lists the major differences between Penftpd and IBM's ftpd:
  51.  
  52.                                                          |Penftpd | IBM
  53. ---------------------------------------------------------+--------+--------
  54. Style of directory output                                |Unix    |OS/2
  55. Unified directory structure                              |Yes     |No
  56. Uses threads to handle connections                       |Yes     |No
  57. Uses encrypted passwords                                 |Yes     |No
  58. Able to specify both readable and non-readable           |        |
  59.    directories                                           |Yes     |No
  60. Can specify upload directories                           |Yes     |No
  61. Limit number of users able to login                      |Yes     |No
  62.    Limit total number of users able to login             |Yes     |N/A
  63.    Limit number of users able to login by user type      |Yes     |N/A
  64. Login messages                                           |Yes     |No
  65. Directory messages                                       |Yes     |No
  66.    Can turn off long replys                              |Yes     |N/A
  67. Variable command logging levels                          |Yes     |No
  68. User logging                                             |Yes     |No
  69. Transfer logging                                         |Yes     |No
  70. Can signal user when a connection is made with either    |        |
  71.    beeping, or by playing a multimedia file              |Yes     |No
  72. Launchable by inetd                                      |Yes     |Yes
  73.  
  74. In addition to this Penftpd also offers higher data throughput rates. Also
  75. it will work with the IAK offered with Warp.
  76.  
  77. How to run the daemon:
  78. ======================
  79. penftpd -option1 -option2 ...
  80. where the options are:
  81. -b<num>    : number of times to beep when a connection is made.
  82. -c<num>[r] : turn on cmd logging. The number represents what level of logging
  83.              you want.
  84.              1 - least logging, shows user and transfers
  85.              2 - shows almost everything, except for PORT commands
  86.              3 - shows everything
  87.              r is an optional switch which allows replies from penftpd to be
  88.              logged.
  89. -C<file>   : The name of the command logfile
  90.              (default: penftpdDir\"ftpCmd.log")
  91. -d<file>   : Message of the day file
  92. -f         : turn on transfer logging
  93. -F<file>   : transfer log filename
  94.              (default penftpdDir\"transfer.log")
  95. -k<num>    : Keep at least <num> bytes free on all disks. If less than
  96.              <num> bytes are available uploads will be disabled.
  97. -I<file>   : Name of the file that penftpd will use for user information.
  98.              (default penftpdDir\"penftpd.ini")
  99. -l<num>    : number of allowable login failures before the user gets kicked off
  100.              (default: 3)
  101. -m<file>   : name of a multimedia file to play when a connection is made.
  102.              It can be any multimedia file (movie, sound, midi, etc).
  103. -n<num>    : Max number of users allowed on the system.
  104.              (default: unlimited)
  105. -o         : Create an "orphan" program. This is very similar to a detached
  106.              program. This can be killed by using the -q switch mentioned after.
  107. -p<num>    : the port at which to run the daemon
  108.              (default: 21)
  109. -q         : Terminate penftpd.
  110. -R         : Reset the connection numbers used in the logs to 0.
  111. -t<num>    : default timeout for each user (in seconds)
  112.              (default: 900)
  113. -T<num>    : maximum timeout value that the user can set for themselves.
  114.              (in seconds)
  115.              (default: 7200)
  116. -u         : turn on user logging
  117. -U<file>   : user log filename
  118.              (default penftpdDir\"ftpUser.log")
  119.  
  120. NOTE: 1)Do not leave a space between a parameter and it's argument.
  121.       2)Anywhere a number is asked for you can use the letters 'k' and 'm'
  122.         to represent thousands and millions.
  123.  
  124. Example:
  125. penftpd -u -f -c1r -t300 -T900 -k5m
  126.    This tells penftpd to record all users, and their file transfers. As well
  127.    it logs the common commands and their replies. The user will time out
  128.    after 300 seconds of inactivity, but they can set it as high as 900
  129.    seconds. Uploads will not be allowed unless there is at least 5Mb free
  130.    on the disk.
  131.  
  132. If Penftpd is run without arguments, while another copy is already running,
  133. that copy will be shown on the screen.
  134.  
  135. How to use PENFTPD with INETD:
  136. ==============================
  137. To get inetd to start penftpd, you need to edit INETD.LST. This
  138. file will be in your ETC directory (typically c:\tcpip\etc). In this file
  139. add the line:
  140. ftp tcp start /b d:\path\penftpd.exe -option1 -option2 ...
  141. where d:\path is the directory that penftpd.exe resides.
  142.  
  143. If the line:
  144. ftp tcp ftpd
  145. is in the file, then you must replace it with the above line.
  146.  
  147. It is very important that penftpd.exe is started, and not just called,
  148. otherwise no other requests from inetd can be serviced until penftpd.exe is
  149. finished.
  150.  
  151. How to use directory messages:
  152. ==============================
  153. If you want to show the user a message when they change into a directory,
  154. then place that message into a file called "dir.msg" in the required
  155. directory. If you want them to see a message in the "super-root" directory,
  156. then place a file called "rootdir.msg" into penftpd's home directory.
  157.  
  158. In these files there are also a number of substitution variables that can
  159. be used. These are:
  160. %d  - users current directory.
  161. %h  - hostname of the current machine.
  162. %i  - user ID name.
  163. %p  - Users password (If they have a password field of E-MAIL)
  164. %ng - number of users on globally.
  165. %ni - number of users of type ID logged in.
  166. %mg - maximum number of users allowed globally.
  167. %mi - maximum number of users of type ID allowed.
  168. %t  - Current time and date, in HH:MM day DD mon YYYY format.
  169. %v  - Print out Penftpd version notice.
  170.  
  171. The switches supported by penftpd's LIST/NLST commands:
  172. =======================================================
  173. -C : display NLST listing in columns.
  174. -d : de-reference arguments.
  175. -F : indicates directories by appending a slash.
  176. -l : give long (LIST) listing regardless of what we were asked to do.
  177. -p : indicates directories by appending a slash.
  178. -r : reverse sort.
  179. -R : do a recursive directory listing.
  180. -S : sort by Size (biggest first).
  181. -t : sort by date (newest first).
  182. -- : signifies end of parameters.
  183.  
  184. Hints:
  185. ======
  186. One other thing to note, even though most clients don't support the ALLO
  187. command, which allocates space for the file about to be sent, penftpd does.
  188. If you find a client which supports this feature, then it _should_ reduce
  189. fragmentation caused by uploading files, as OS/2 should try to find a free
  190. block big enough to hold it. The other option is to use the "quote cmd" feature
  191. of most text based ftp clients, and manually send a ALLO command.
  192.  
  193. Future directions:
  194. ==================
  195. Planned enhancements to penfptd include:
  196.    Improvements to the LIST/NLST commands.
  197.    New FTP commands being added (including SITE INDEX)
  198.    Lockout times, ie. give it times when people can login, and times
  199.       when they can't.
  200.    "Meta-characters" in all of the messages. (ie. %n to give user number)
  201.    Anything anyone asks for, particularily if they register :-)
  202.  
  203. Trouble-shooting tips:
  204. ======================
  205. Q1: When penftpd is started it immediately closes and the last line in the
  206. log file is: "Could not initialise FTP Port".
  207.  
  208. A1: This means that the port which you are trying to use is in use by
  209. something else, for instance, inetd, or IBM's ftpd. Another problem
  210. is that sometimes the ports take a while (anout 30 seconds) to reset.
  211. Rectify the problem and restart penftpd.
  212.  
  213. ---
  214.  
  215. Q2: When penftpd is started it immediately closes and the last line in the
  216. log file is: "Failed to initialise socket libraries...Daemon is not running"
  217.  
  218. A2: This could be caused by two problems, first make sure that
  219. IBM's TCP/IP is installed properly, as this is needed to make penftpd
  220. run. Secondly make sure that you have defined a hostname for your computer.
  221.  
  222. ---
  223.  
  224. Q3: I have added pefntpd to my INETD.LST file, but whenever someone ftp's
  225. my machine, it changes the active window to the desktop.
  226.  
  227. A3: This is probably because you didn't include the "/b" switch to the start
  228. command. This switch tells inetd to start penftpd up in the background,
  229. without it inetd starts penftpd up in the foreground, which interrupts
  230. whatever you are doing at the time.
  231.  
  232.  
  233. Thanks:
  234. =======
  235. Thanks go to Andrew Williams, Peter Lewis and Quinn (aka the Eskimo) for
  236. encouraging me to write the program in the first place.
  237. Thanks also go to the beta-testers who tested out the program.
  238.  
  239. Special thanks go to Andrew Williams, Jason Tiller and Tom Sorenson for their
  240. voluminous feedback on the various betas (especially Jason).
  241.  
  242. An extra special thanks goes to Jason Tiller and Tom Sorenson for assistance
  243. in the distribution of the shareware version of penftpd.
  244.  
  245. Trademarks:
  246. ===========
  247. IBM and OS/2 are trademarks of International Business Machines Corporation.
  248.  
  249.