|
|
1.1 ! root 1: .\" Copyright (c) 1985, 1988 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)ftpd.8 6.8 (Berkeley) 6/24/90 ! 19: .\" ! 20: .TH FTPD 8 "February 23, 1989" ! 21: .UC 5 ! 22: .SH NAME ! 23: ftpd \- DARPA Internet File Transfer Protocol server ! 24: .SH SYNOPSIS ! 25: .B ftpd ! 26: [ ! 27: .B \-d ! 28: ] [ ! 29: .B \-l ! 30: ] [ ! 31: .BR \-t timeout ! 32: ] [ ! 33: .BR \-T maxtimeout ! 34: ] ! 35: .SH DESCRIPTION ! 36: .I Ftpd ! 37: is the DARPA Internet File Transfer Protocol ! 38: server process. The server uses the TCP protocol ! 39: and listens at the port specified in the ``ftp'' ! 40: service specification; see ! 41: .IR services (5). ! 42: .PP ! 43: If the ! 44: .B \-d ! 45: option is specified, ! 46: debugging information is written to the syslog. ! 47: .PP ! 48: If the ! 49: .B \-l ! 50: option is specified, ! 51: each ftp session is logged in the syslog. ! 52: .PP ! 53: The ftp server ! 54: will timeout an inactive session after 15 minutes. ! 55: If the ! 56: .B \-t ! 57: option is specified, ! 58: the inactivity timeout period will be set to ! 59: .I timeout ! 60: seconds. ! 61: A client may also request a different timeout period; ! 62: the maximum period allowed may be set to ! 63: .I timeout ! 64: seconds with the ! 65: .B \-T ! 66: option. ! 67: The default limit is 2 hours. ! 68: .PP ! 69: The ftp server currently supports the following ftp ! 70: requests; case is not distinguished. ! 71: .PP ! 72: .nf ! 73: .ta \w'Request 'u ! 74: \fBRequest Description\fP ! 75: ABOR abort previous command ! 76: ACCT specify account (ignored) ! 77: ALLO allocate storage (vacuously) ! 78: APPE append to a file ! 79: CDUP change to parent of current working directory ! 80: CWD change working directory ! 81: DELE delete a file ! 82: HELP give help information ! 83: LIST give list files in a directory (``ls -lgA'') ! 84: MKD make a directory ! 85: MDTM show last modification time of file ! 86: MODE specify data transfer \fImode\fP ! 87: NLST give name list of files in directory ! 88: NOOP do nothing ! 89: PASS specify password ! 90: PASV prepare for server-to-server transfer ! 91: PORT specify data connection port ! 92: PWD print the current working directory ! 93: QUIT terminate session ! 94: REST restart incomplete transfer ! 95: RETR retrieve a file ! 96: RMD remove a directory ! 97: RNFR specify rename-from file name ! 98: RNTO specify rename-to file name ! 99: SITE non-standard commands (see next section) ! 100: SIZE return size of file ! 101: STAT return status of server ! 102: STOR store a file ! 103: STOU store a file with a unique name ! 104: STRU specify data transfer \fIstructure\fP ! 105: SYST show operating system type of server system ! 106: TYPE specify data transfer \fItype\fP ! 107: USER specify user name ! 108: XCUP change to parent of current working directory (deprecated) ! 109: XCWD change working directory (deprecated) ! 110: XMKD make a directory (deprecated) ! 111: XPWD print the current working directory (deprecated) ! 112: XRMD remove a directory (deprecated) ! 113: .fi ! 114: .PP ! 115: The following non-standard or UNIX specific commands are supported ! 116: by the SITE request. ! 117: .PP ! 118: .nf ! 119: .ta \w'Request 'u ! 120: \fBRequest Description\fP ! 121: UMASK change umask. \fIE.g.\fP SITE UMASK 002 ! 122: IDLE set idle-timer. \fIE.g.\fP SITE IDLE 60 ! 123: CHMOD change mode of a file. \fIE.g.\fP SITE CHMOD 755 filename ! 124: HELP give help information. \fIE.g.\fP SITE HELP ! 125: .fi ! 126: .PP ! 127: The remaining ftp requests specified in Internet RFC 959 are ! 128: recognized, but not implemented. ! 129: MDTM and SIZE are not specified in ! 130: RFC 959, but will appear in the next updated FTP RFC. ! 131: .PP ! 132: The ftp server will abort an active file transfer only when the ! 133: ABOR command is preceded by a Telnet "Interrupt Process" (IP) ! 134: signal and a Telnet "Synch" signal in the command Telnet stream, ! 135: as described in Internet RFC 959. ! 136: If a STAT command is received during a data transfer, preceded by a Telnet IP ! 137: and Synch, transfer status will be returned. ! 138: .PP ! 139: .I Ftpd ! 140: interprets file names according to the ``globbing'' ! 141: conventions used by ! 142: .IR csh (1). ! 143: This allows users to utilize the metacharacters ``*?[]{}~''. ! 144: .PP ! 145: .I Ftpd ! 146: authenticates users according to three rules. ! 147: .IP 1) ! 148: The user name must be in the password data base, ! 149: .IR /etc/passwd , ! 150: and not have a null password. In this case a password ! 151: must be provided by the client before any file operations ! 152: may be performed. ! 153: .IP 2) ! 154: The user name must not appear in the file ! 155: .IR /etc/ftpusers . ! 156: .IP 3) ! 157: The user must have a standard shell returned by ! 158: .IR getusershell (3). ! 159: .IP 4) ! 160: If the user name is ``anonymous'' or ``ftp'', an ! 161: anonymous ftp account must be present in the password ! 162: file (user ``ftp''). In this case the user is allowed ! 163: to log in by specifying any password (by convention this ! 164: is given as the client host's name). ! 165: .PP ! 166: In the last case, ! 167: .I ftpd ! 168: takes special measures to restrict the client's access privileges. ! 169: The server performs a ! 170: .IR chroot (2) ! 171: command to the home directory of the ``ftp'' user. ! 172: In order that system security is not breached, it is recommended ! 173: that the ``ftp'' subtree be constructed with care; the following ! 174: rules are recommended. ! 175: .IP ~ftp) ! 176: Make the home directory owned by ``ftp'' and unwritable by anyone. ! 177: .IP ~ftp/bin) ! 178: Make this directory owned by the super-user and unwritable by ! 179: anyone. The program ! 180: .IR ls (1) ! 181: must be present to support the list command. This ! 182: program should have mode 111. ! 183: .IP ~ftp/etc) ! 184: Make this directory owned by the super-user and unwritable by ! 185: anyone. The files ! 186: .IR passwd (5) ! 187: and ! 188: .IR group (5) ! 189: must be present for the ! 190: .I ls ! 191: command to be able to produce owner names rather than numbers. ! 192: The password field in ! 193: .I passwd ! 194: is not used, and should not contain real encrypted passwords. ! 195: These files should be mode 444. ! 196: .IP ~ftp/pub) ! 197: Make this directory mode 777 and owned by ``ftp''. Users ! 198: should then place files which are to be accessible via the ! 199: anonymous account in this directory. ! 200: .SH "SEE ALSO" ! 201: ftp(1), getusershell(3), syslogd(8) ! 202: .SH BUGS ! 203: The anonymous account is inherently dangerous and should ! 204: avoided when possible. ! 205: .PP ! 206: The server must run as the super-user ! 207: to create sockets with privileged port numbers. It maintains ! 208: an effective user id of the logged in user, reverting to ! 209: the super-user only when binding addresses to sockets. The ! 210: possible security holes have been extensively ! 211: scrutinized, but are possibly incomplete.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.