ftpd(8)



NAME

     ftpd, in.ftpd, setup.anonftp -  DARPA  Internet  File  Transfer  Protocol
     server


SYNOPSIS

     ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
     tcpd ftp /usr/sbin/in.ftpd


DESCRIPTION

     Ftpd is the DARPA Internet File Transfer Prototocol server process.   The
     server  uses  the  TCP  protocol and listens at the port specified in the
     ``ftp'' service specification; see services(5).

     The ftp server currently supports the following ftp  requests;   case  is
     not distinguished.

     Request        Description
     ABOR           abort previous command
     ACCT           specify account (ignored)
     ALLO           allocate storage (vacuously)
     APPE           append to a file
     CDUP           change to parent of current working directory
     CWD            change working directory
     DELE           delete a file
     HELP           give help information
     LIST           give list files in a directory (``ls -lA'')
     MKD            make a directory
     MODE           specify data transfer mode
     NLST           give name list of files in directory (``ls'')
     NOOP           do nothing
     PASS           specify password
     PASV           prepare for server-to-server transfer
     PORT           specify data connection port
     PWD            print the current working directory
     QUIT           terminate session
     RETR           retrieve a file
     RMD            remove a directory
     RNFR           specify rename-from file name
     RNTO           specify rename-to file name
     STOR           store a file
     STOU           store a file with a unique name
     STRU           specify data transfer structure
     TYPE           specify data transfer type
     USER           specify user name
     XCUP           change to parent of current working directory
     XCWD           change working directory
     XMKD           make a directory
     XPWD           print the current working directory
     XRMD           remove a directory

     The remaining ftp requests specified in Internet RFC 959 are  recognized,
     but not implemented.

     The ftp server will abort an active file  transfer  only  when  the  ABOR
     command  is  preceded  by  a Telnet "Interrupt Process" (IP) signal and a
     Telnet "Synch" signal in the  command  Telnet  stream,  as  described  in
     Internet RFC 959.

     Ftpd interprets file names according to the ``globbing'' conventions used
     by csh(1).  This allows users to utilize the metacharacters ``*?[]{}~''.

     Ftpd authenticates users according to three rules.

     1)   The user name must be in the password data  base,  /etc/passwd,  and
          not  have a null password.  In this case a password must be provided
          by the client before any file operations may be performed.

     2)   The user name must not appear in the file /etc/ftpusers.

     3)   If the user name is  ``anonymous''  or  ``ftp'',  an  anonymous  ftp
          account  must  be  present  in the password file (user ``ftp'').  In
          this case the user is allowed to log in by specifying  any  password
          (by convention this is given as the client host's name).

     In the last case, ftpd takes special measures to  restrict  the  client's
     access  privileges.   The server performs a chroot(2) command to the home
     directory of the ``ftp'' user.  In order  that  system  security  is  not
     breached,  it is recommended that the ``ftp'' subtree be constructed with
     care;  the following rules are recommended.

     ~ftp)
          Make the home directory owned by ``ftp'' and unwritable by anyone.

     ~ftp/bin)
          Make this directory  owned  by  the  super-user  and  unwritable  by
          anyone.   The  program  ls(1)  must  be  present to support the list
          commands.  This program should have mode 111.

     ~ftp/etc)
          Make this directory  owned  by  the  super-user  and  unwritable  by
          anyone.  The files passwd(5) and group(5) must be present for the ls
          command to work properly.  These files should be mode 444.

     ~ftp/pub)
          Make this directory mode 755 and owned by  the  super-user.   Create
          directories  in  it  owned by users if those users want to manage an
          anonymous ftp directory.



     ~ftp/pub/incoming)
          Optionally create this directory for  anonymous  uploads.   Make  it
          mode 777.  The FTP daemon will create files with mode 266, so remote
          users can write a file, but only local users can do  something  with
          it.

     The script setup.anonftp can be used to create or check an anonymous  FTP
     tree.


SEE ALSO

     ftp(1).


BUGS

     The anonymous account is inherently dangerous  and  should  avoided  when
     possible.