## ProFTPD Supported FTP Commands

Supported FTP Commands

- `ABOR`

- `APPE`
  Short for APPEnd.

- `AUTH`
  Short for AUTHenticate (supported by `mod_tls`)

- `CDUP`
  Short for Change Directory UP, this command is used to move the client's "location" on the server up one level in the filesystem hierarchy.

- `CWD`
  Short for Change Working Directory.

- `DELE`
  Short for DELEte, this command is used by the client to tell the server to delete a file.

- `EPRT`
  Short for Extended PoRT, an enhanced version of the `PORT` command that can handle IPv6 addresses.

- `EPSV`
  Short for Extended PaSsiVe, an enhanced version of the `PASV` command that can handle IPv6 addresses.

- `FEAT`
  Short for FEATures, this command is used by the client to request a descriptive list of server-supported features.

- `HELP`

- `LIST`

- `MDTM`
  Short for MoDification TiMe, this command is used by the client to request the modification time of a file on the server. This command is not defined in any formal RFCs (yet), but is a commonly implemented FTP command. Note that this command cannot be used to change the modification time of the file on the server; it only reports on the file's modification time.

- `MKD`
  Short for MaKe Directory.

- `NLST`
  Short for Name LiST.

- `NOOP`
  Short for NO OPeration. This command has no functionality, and is often used as a session keepalive mechanism.

- `OPTS`
  Short for OPTionS. This command is used to specify optional parameters for the command to follow the `OPTS` command, if that command supports such optional parameters.

- `PASS`
  Short for PASSword, the client uses this command to convey the password of the user attempting to log into the server.

- `PASV`
  Short for PASsiVe, the client uses this command to ask the server for a port to which the client should connect, indicating a passive data transfer.

- `PBSZ`
  Short for Protection Buffer SiZe. Used to determine the size of a buffer needed for secure handshaking (supported by `mod_tls`)

- `PORT`
  The client uses this command to tell the server to what client-side port the server should contact; use of this command indicates an active data transfer.

- `PROT`
  Short for PROTection. Used to set the protection level on the data channel (supported by `mod_tls`)

- `PWD`
  Short for Print Working Directory.

- `QUIT`

- `REST`
  Short for RESTart, this command is used by the client to tell the server that it would like to restart a previous data transfer, either upload or download.

- `RETR`
  Short for RETRieve, this command is used by the client to inform the server of the file the client would like to download. On many FTP client, this is implemented using the client-specfic "get" command.

- `RMD`
  Short for ReMove Directory, this command is used to have the server delete the requested directory from its filesystem.

- `RNFR`
  Short for ReName FRom.

- `RNTO`
  Short for ReName TO.

- `SITE`
  This command is used for site-specific commands. See below for descriptions of `proftpd`'s SITE commands.

- `SIZE`

- `STAT`

- `STOR`
  Short for STORe, this command is used by the client to tell the the server that the client will be uploading data for a file to stored on the server using the filename given. On many FTP clients, this is implemented using the client-specific "put" command.

- `STOU`
  Short for STOre Uunique, it requests that the file being stored on the server be given a unique filename. The server chooses the unique name for the stored file, and reports the name chosen back to the client. On some FTP clients, this ability is enabled using the client-specific "sunique" command.

- `SYST`

- `TYPE`

- `USER`
  An FTP client uses this command to inform the server of the name of the user requesting an FTP session.

- `XCUP`
  This is an X-variant of the `CDUP` command, and has the same functionality.

- `XCWD`
  This is an X-variant of the `CWD` command, and has the same functionality.

- `XMKD`
  This is an X-variant of the `MKD` command, and has the same functionality.

- `XPWD`
  This is an X-variant of the `PWD` command, and has the same functionality.

- `XRMD`
  This is an X-variant of the `RMD` command, and has the same functionality.

Supported `SITE` commands

- `CHGRP`
  Short for CHange GRouP.

  Example:

          SITE CHGRP ftpgroup script.cgi

- `CHMOD`
  Short for CHange MODe.

  Example:

          SITE CHMOD 755 script.cgi

- `HELP`

- `MKDIR`
  Similar to the `MKD` command, this `SITE` can be used to create a directory. It will, unlike `MKD`, also create any directories in the path that do not exist.

  Example:

        SITE MKDIR /path/to/some/dir/that/is/not/there/

  Supported by the `mod_site_misc` module.

- `RMDIR`
  Similar to the `RMD` command, this `SITE` can be used to remove a directory. It will, unlike `RMD`, also delete any files in the directory.

  Example:

        SITE RMDIR /path/to/some/dir/with/files/

  Supported by the `mod_site_misc` module.

- `SYMLINK`
  Used to create a symbolic link (a.k.a. a symlink) from the source path (src) to the destination path (dest).

  Example:

        SITE SYMLINK src dest

  Supported by the `mod_site_misc` module.

- `UTIME`
  Used to update the access and modification timestamps on a file.

  Example:

        SITE UTIME 200412312359 /path/to/some/file.txt

  Supported by the `mod_site_misc` module.

Unsupported FTP Commands

- `ACCT`
  Short for ACCounT

- `ALLO`

- `MACB`
  Short for MACintosh Binary. This command is not defined in any RFC, and is something of a hack added by Apple in order to support transfers of the resource forks of Mac files.

- `MODE`
  There are three mode types defined by RFC959; `proftpd` only supports one (i.e. Stream), and thus this command is not supported.

- `REIN`

- `SMNT`

- `STRU`
  Short for STRUcture. `proftpd` only supports a `STRU` parameter of type F (for "file"), and so does not support this command.

Last Updated: $Date: 2004/12/31 19:17:17 $