ftpd.8
上传用户:zibowangxu
上传日期:2007-01-04
资源大小:331k
文件大小:13k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1. ."
  2. ." Copyright (c) 1999 WU-FTPD Development Group. 
  3. ." All rights reserved.
  4. ." 
  5. ." Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994 
  6. ." The Regents of the University of California.  Portions Copyright (c) 
  7. ." 1993, 1994 Washington University in Saint Louis.  Portions Copyright 
  8. ." (c) 1996, 1998 Berkeley Software Design, Inc.  Portions Copyright (c) 
  9. ." 1998 Sendmail, Inc.  Portions Copyright (c) 1983, 1995, 1996, 1997 Eric 
  10. ." P. Allman.  Portions Copyright (c) 1989 Massachusetts Institute of 
  11. ." Technology.  Portions Copyright (c) 1997 Stan Barber.  Portions 
  12. ." Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997 Free Software 
  13. ." Foundation, Inc.  Portions Copyright (c) 1997 Kent Landfield. 
  14. ."
  15. ." Use and distribution of this software and its source code are governed 
  16. ." by the terms and conditions of the WU-FTPD Software License ("LICENSE"). 
  17. ."
  18. ." $Id: ftpd.8,v 1.7 1999/09/02 21:01:13 wuftpd Exp $
  19. ."
  20. .TH FTPD 8 "Jan 10, 1997"
  21. .UC 5
  22. .SH NAME
  23. ftpd - Internet File Transfer Protocol server
  24. .SH SYNOPSIS
  25. .B ftpd
  26. [
  27. .B -d
  28. ] [
  29. .B -v
  30. ] [
  31. .B -l
  32. ] [
  33. .BR -t
  34. timeout
  35. ] [
  36. .BR -T
  37. maxtimeout
  38. ] [
  39. .BR -a
  40. ] [
  41. .BR -A
  42. ] [
  43. .BR -L
  44. ] [
  45. .BR -i
  46. ] [
  47. .BR -I
  48. ] [
  49. .BR -o
  50. ] [
  51. .BR -p
  52. ctrlport
  53. ] [
  54. .BR -P
  55. dataport
  56. ] [
  57. .BR -q
  58. ] [
  59. .BR -Q
  60. ] [
  61. .BR -r
  62. rootdir
  63. ] [
  64. .BR -s
  65. ] [
  66. .BR -S
  67. ] [
  68. .BR -u
  69. umask
  70. ] [
  71. .BR -V
  72. ] [
  73. .BR -w
  74. ] [
  75. .BR -W
  76. ] [
  77. .BR -X
  78. ]
  79. .SH DESCRIPTION
  80. .I Ftpd
  81. is the Internet File Transfer Protocol
  82. server process.  The server uses the TCP protocol
  83. and listens at the port specified in the ``ftp''
  84. service specification; see
  85. .IR services (5).
  86. .PP
  87. The
  88. .B -V
  89. option causes the program to display copyright and version information, then
  90. terminate.
  91. .PP
  92. If the 
  93. .B -d
  94. or 
  95. .B -v
  96. option is specified,
  97. debugging information is written to the syslog.
  98. .PP
  99. If the
  100. .B -l
  101. option is specified,
  102. each ftp session is logged in the syslog.
  103. .PP
  104. The ftp server
  105. will timeout an inactive session after 15 minutes.
  106. If the
  107. .B -t
  108. option is specified,
  109. the inactivity timeout period will be set to
  110. .I timeout
  111. seconds.
  112. A client may also request a different timeout period;
  113. the maximum period allowed may be set to
  114. .I timeout
  115. seconds with the
  116. .B -T
  117. option.
  118. The default limit is 2 hours.
  119. .PP
  120. If the
  121. .B -a
  122. option is specified, the use of the
  123. .IR ftpaccess (5)
  124. configuration file is enabled.
  125. .PP
  126. If the
  127. .B -A
  128. option is specified, use of the
  129. .IR ftpaccess (5)
  130. configuration file is disabled. This is the default.
  131. .PP
  132. If the
  133. .B -L
  134. option is specified, commands sent to the
  135. .IR ftpd (8)
  136. server will be logged to the syslog.  The 
  137. .B -L
  138. option is overridden by the use of the
  139. .IR ftpaccess (5)
  140. file.  If the 
  141. .B -L 
  142. flag is used, command logging will be on by
  143. default as soon as the ftp server is invoked.
  144. This will cause the server to log all USER
  145. commands, which if a user accidentally enters a
  146. password for that command instead of the
  147. username, will cause passwords to be logged via syslog.
  148. .PP
  149. If the
  150. .B -i
  151. option is specified, files received by the
  152. .IR ftpd (8)
  153. server will be logged to the
  154. .IR xferlog (5).
  155. The
  156. .B -i
  157. option is overridden by the use of the
  158. .IR ftpaccess (5)
  159. file.
  160. .PP
  161. The
  162. .B -I
  163. option disables the use of RFC931 (AUTH/ident) to attempt to determine the
  164. username on the client.
  165. .PP
  166. If the
  167. .B -o
  168. option is specified, files transmitted by the
  169. .IR ftpd (8)
  170. server will be logged to the 
  171. .IR xferlog (5).  
  172. The 
  173. .B -o
  174. option is overridden by the use of the
  175. .IR ftpaccess (5)
  176. file.  If the
  177. .B -X
  178. option is specified, the output created by the
  179. .B -i
  180. and
  181. .B -o
  182. options is not saved to the xferlog file but saved via syslog
  183. so you can collect output from several hosts on one central loghost.
  184. .PP
  185. If the
  186. .B -u
  187. option is specified, the default umask is set to
  188. .I umask.
  189. .PP
  190. If the
  191. .B -W
  192. option is specified user logins are not recorded in the wtmp file.  The
  193. default (
  194. .B -w
  195. ) is to record every login and logout.
  196. .PP
  197. The
  198. .B -s
  199. and
  200. .B -S
  201. options place the daemon in standalone operation mode.  The
  202. .B -S
  203. option runs the daemon in the background and is useful in startup scripts
  204. during system initialization (ie., in rc.local).  The
  205. .B -s
  206. option leaves the daemon in foreground and is useful when running from init
  207. (ie., /etc/inittab).
  208. .PP
  209. The
  210. .B -p
  211. and
  212. .B -P
  213. options override the port numbers used by the daemon.  Normally, the daemon
  214. determines the port numbers by looking in /etc/services for "ftp" and "ftp-data".
  215. If there is no /etc/services entry for "ftp-data" and the
  216. .B -P
  217. option is not specified, the daemon uses the port just prior to the control connection
  218. port.
  219. The
  220. .B -p
  221. option is only available if running as a standalone daemon.
  222. .PP
  223. The
  224. .B -q
  225. and
  226. .B -Q
  227. options deterine whether the daemon uses the PID files.  These files are required by the
  228. limit directive to determine the number of current users in each access class.  Disabling
  229. the use of the PID files disables user limits.  The default (
  230. .B -q
  231. ) is to use the PID files.  Specify
  232. .B -Q
  233. when testing the server as a normal user when access permissions prevent the use of the PID files.
  234. Large, busy sites which do not wish to impose limits on the number of concurrent users may also consider
  235. disabling the PID files.
  236. .PP
  237. The
  238. .B -r
  239. option instructs the daemon to chroot(2) to the specified rootdir immedeately upon loading.  This can
  240. improve system security by limiting the files which may be damaged should a breakin occur through the
  241. daemon.  Set is much like anonymous FTP, with additional files needed which vary from system to system.
  242. .PP
  243. The ftp server currently supports the following ftp
  244. requests; case is not distinguished.
  245. .PP
  246. .nf
  247. .ta w'Request        'u
  248. fBRequest DescriptionfP
  249. ABOR abort previous command
  250. ACCT specify account (ignored)
  251. ALLO allocate storage (vacuously)
  252. APPE append to a file
  253. CDUP change to parent of current working directory
  254. CWD change working directory
  255. DELE delete a file
  256. HELP give help information
  257. LIST give list files in a directory (``ls -lgA'')
  258. MKD make a directory
  259. MDTM show last modification time of file
  260. MODE specify data transfer fImodefP
  261. NLST give name list of files in directory 
  262. NOOP do nothing
  263. PASS specify password
  264. PASV prepare for server-to-server transfer
  265. PORT specify data connection port
  266. PWD print the current working directory
  267. QUIT terminate session
  268. REST restart incomplete transfer
  269. RETR retrieve a file
  270. RMD remove a directory
  271. RNFR specify rename-from file name
  272. RNTO specify rename-to file name
  273. SITE non-standard commands (see next section)
  274. SIZE return size of file
  275. STAT return status of server
  276. STOR store a file
  277. STOU store a file with a unique name
  278. STRU specify data transfer fIstructurefP
  279. SYST show operating system type of server system
  280. TYPE specify data transfer fItypefP
  281. USER specify user name
  282. XCUP change to parent of current working directory (deprecated)
  283. XCWD change working directory (deprecated)
  284. XMKD make a directory (deprecated)
  285. XPWD print the current working directory (deprecated)
  286. XRMD remove a directory (deprecated)
  287. .fi
  288. .PP
  289. The following non-standard or UNIX specific commands are supported
  290. by the SITE request.
  291. .PP
  292. .nf
  293. .ta w'Request        'u
  294. fBRequest DescriptionfP
  295. UMASK change umask. fIE.g.fP SITE UMASK 002
  296. IDLE set idle-timer. fIE.g.fP SITE IDLE 60
  297. CHMOD change mode of a file. fIE.g.fP SITE CHMOD 755 filename
  298. HELP give help information. fIE.g.fP SITE HELP
  299. NEWER list files newer than a particular date
  300. MINFO like SITE NEWER, but gives extra information
  301. GROUP request special group access. fIE.g.fP SITE GROUP foo
  302. GPASS give special group access password. fIE.g.fP SITE GPASS bar
  303. EXEC execute a program.  fIE.g.fP SITE EXEC program params
  304. .fi
  305. .PP
  306. The remaining ftp requests specified in Internet RFC 959 are
  307. recognized, but not implemented.
  308. MDTM and SIZE are not specified in
  309. RFC 959, but will appear in the next updated FTP RFC.
  310. .PP
  311. The ftp server will abort an active file transfer only when the
  312. ABOR command is preceded by a Telnet "Interrupt Process" (IP)
  313. signal and a Telnet "Synch" signal in the command Telnet stream,
  314. as described in Internet RFC 959.
  315. If a STAT command is received during a data transfer, preceded by a Telnet IP
  316. and Synch, transfer status will be returned.
  317. .PP
  318. .I Ftpd
  319. interprets file names according to the ``globbing''
  320. conventions used by
  321. .IR csh (1).
  322. This allows users to utilize the metacharacters ``*?[]{}~''.
  323. .PP
  324. .I Ftpd
  325. authenticates users according to four rules. 
  326. .IP 1)
  327. The user name must be in the password data base,
  328. .IR /etc/passwd ,
  329. or whatever is appropriate for the operating system,
  330. and the password must not be null.  In this case a password
  331. must be provided by the client before any file operations
  332. may be performed.
  333. .IP 2)
  334. The user name must not appear in the file
  335. .IR /etc/ftpusers .
  336. .IP 3)
  337. The user must have a standard shell returned by 
  338. .IR getusershell (3).
  339. .IP 4)
  340. If the user name is ``anonymous'' or ``ftp'', an
  341. anonymous ftp account must be present in the password
  342. file (user ``ftp'').  In this case the user is allowed
  343. to log in by specifying any password (by convention this
  344. is given as the client host's name).
  345. .PP
  346. In the last case, 
  347. .I ftpd
  348. takes special measures to restrict the client's access privileges.
  349. The server performs a 
  350. .IR chroot (2)
  351. command to the home directory of the ``ftp'' user.
  352. In order that system security is not breached, it is recommended
  353. that the ``ftp'' subtree be constructed with care;  the following
  354. rules are recommended.
  355. .IP ~ftp)
  356. Make the home directory owned by super-user and unwritable by anyone.
  357. .IP ~ftp/bin)
  358. Make this directory owned by the super-user and unwritable by
  359. anyone.  The program
  360. .IR ls (1)
  361. must be present to support the list command.  This
  362. program should have mode 111.
  363. .IP ~ftp/etc)
  364. Make this directory owned by the super-user and unwritable by
  365. anyone.  The files
  366. .IR passwd (5)
  367. and
  368. .IR group (5)
  369. must be present for the 
  370. .I ls
  371. command to be able to produce owner names rather than numbers. Depending
  372. on the operating system, there may be other required files. Check your
  373. manual page for the 
  374. .IR getpwent (3)
  375. library routine.
  376. The password field in
  377. .I passwd
  378. is not used, and should not contain real encrypted passwords.
  379. These files should be mode 444 and owned by the super-user.
  380. Don't use the system's /etc/passwd file as the password file or
  381. the system's /etc/group file as the group file in the ~ftp/etc directory.
  382. .IP ~ftp/pub)
  383. Create a subdirectory in ~ftp/pub
  384. with the appropriate mode (777 or 733) if you want to allow normal
  385. users to upload files.
  386. .PP
  387. .SH AUTHENTICATION MECHANISM ON BSD/OS SYSTEMS ONLY
  388. The authentication mechanism used by ftpd is determined by
  389. the ``auth-ftp'' entry in the
  390. .IR /etc/login.conf
  391. file
  392. (see
  393. .IR login.conf (5))
  394. that matches the users class.
  395. If there is no ``auth-ftp'' entry for the class, the normal ``auth'' entry
  396. will be used instead.
  397. An alternate authentication mechanism may be specified by
  398. appending a colon (``:'') followed by the authentication
  399. style, i.e. ``joe:skey''.
  400. .SH GENERAL FTP EXTENSIONS
  401. .PP
  402. There are some extensions to the FTP server such that if the user
  403. specifies a filename (when using a RETRIEVE command) such that:
  404. .PP
  405. .nf
  406.  True Filename  Specified Filename  Action
  407.  -------------  ------------------  -----------------------------------
  408.  <filename>.Z   <filename>          Decompress file before transmitting
  409.  <filename>     <filename>.Z        Compress <filename> before 
  410.                                             transmitting
  411.  <filename>     <filename>.tar      Tar <filename> before transmitting
  412.  <filename>     <filename>.tar.Z    Tar and compress <filename> before
  413.                                             transmitting
  414. .fi
  415. .PP
  416. Also, the FTP server will attempt to check for valid e-mail addresses and
  417. chide the user if he doesn't pass the test.  For users whose FTP client
  418. will hang on "long replies" (i.e. multiline responses), using a dash as
  419. the first character of the password will disable the server's lreply()
  420. function.
  421. .PP
  422. The FTP server can also log all file transmission and reception,
  423. keeping the following information for each file transmission that takes
  424. place.
  425. .PP
  426. .nf
  427. Mon Dec  3 18:52:41 1990 1 wuarchive.wustl.edu 568881 /files.lst.Z a _ o a chris@wugate.wustl.edu ftp 0 *
  428.   %.24s %d %s %d %s %c %s %c %c %s %s %d %s
  429.     1   2  3  4  5  6  7  8  9  10 11 12 13
  430.   1 current time in the form DDD MMM dd hh:mm:ss YYYY
  431.   2 transfer time in seconds
  432.   3 remote host name
  433.   4 file size in bytes
  434.   5 name of file
  435.   6 transfer type (a>scii, b>inary)
  436.   7 special action flags (concatenated as needed):
  437.         C   file was compressed
  438.         U   file was uncompressed
  439.         T   file was tar'ed
  440.         _   no action taken
  441.   8 file was sent to user (o>utgoing) or received from 
  442.     user (i>ncoming)
  443.   9 accessed anonymously (r>eal, a>nonymous, g>uest) -- mostly for FTP
  444.  10 local username or, if guest, ID string given 
  445.     (anonymous FTP password)
  446.  11 service name ('ftp', other)
  447.  12 authentication method (bitmask)
  448.         0   none
  449.         1   RFC931 Authentication
  450.  13 authenticated user id (if available, '*' otherwise)
  451. .fi
  452. .SH "SEE ALSO"
  453. .BR ftp(1) ,
  454. .BR getusershell(3) ,
  455. .BR syslogd(8) ,
  456. .BR ftpaccess(5) ,
  457. .BR xferlog(5) ,
  458. .BR umask(2)
  459. .SH BUGS
  460. The anonymous account is inherently dangerous and should
  461. avoided when possible.
  462. .PP
  463. The server must run as the super-user
  464. to create sockets with privileged port numbers.  It maintains
  465. an effective user id of the logged in user, reverting to
  466. the super-user only when binding addresses to sockets.  The
  467. possible security holes have been extensively
  468. scrutinized, but are possibly incomplete.