<!-- $Id: FTP.html,v 1.4 2004/12/31 19:17:17 castaglia Exp $ --> <!-- $Source: /cvsroot/proftp/proftpd/doc/howto/FTP.html,v $ --> <html> <head> <title>ProFTPD Supported FTP Commands</title> </head> <body bgcolor=white> <hr> <center><h2><b>ProFTPD Supported FTP Commands</b></h2></center> <hr> <p> <b>Supported FTP Commands</b><br> <ul> <li><a name="ABOR"><b><code>ABOR</code></b></a><br> </li> <p> <li><a name="APPE"><b><code>APPE</code></b></a><br> Short for <b>APPE</b>nd.<br> </li> <p> <li><a name="AUTH"><b><code>AUTH</code></b></a><br> Short for <b>AUTH</b>enticate (supported by <code>mod_tls</code>)<br> </li> <p> <li><a name="CDUP"><b><code>CDUP</code></b></a><br> Short for <b>C</b>hange <b>D</b>irectory <b>UP</b>, this command is used to move the client's "location" on the server up one level in the filesystem hierarchy.<br> </li> <p> <li><a name="CWD"><b><code>CWD</code></b></a><br> Short for <b>C</b>hange <b>W</b>orking <b>D</b>irectory.<br> </li> <p> <li><a name="DELE"><b><code>DELE</code></b></a><br> Short for <b>DELE</b>te, this command is used by the client to tell the server to delete a file.<br> </li> <p> <li><a name="EPRT"><b><code>EPRT</code></b></a><br> Short for <b>E</b>xtended <b>P</b>o<b>RT</b>, an enhanced version of the <a href="#PORT"><code>PORT</code></a> command that can handle IPv6 addresses.<br> </li> <p> <li><a name="EPSV"><b><code>EPSV</code></b></a><br> Short for <b>E</b>xtended <b>P</b>a<b>S</b>si<b>V</b>e, an enhanced version of the <a href="#PASV"><code>PASV</code></a> command that can handle IPv6 addresses.<br> </li> <p> <li><a name="FEAT"><b><code>FEAT</code></b></a><br> Short for <b>FEAT</b>ures, this command is used by the client to request a descriptive list of server-supported features.<br> </li> <p> <li><a name="HELP"><b><code>HELP</code></b></a><br> </li> <p> <li><a name="LIST"><b><code>LIST</code></b></a><br> </li> <p> <li><a name="MDTM"><b><code>MDTM</code></b></a><br> Short for <b>M</b>o<b>D</b>ification <b>T</b>i<b>M</b>e, 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. <i>Note</i> that this command <b>cannot</b> be used to change the modification time of the file on the server; it only reports on the file's modification time.<br> </li> <p> <li><a name="MKD"><b><code>MKD</code></b></a><br> Short for <b>M</b>a<b>K</b>e <b>D</b>irectory.<br> </li> <p> <li><a name="NLST"><b><code>NLST</code></b></a><br> Short for <b>N</b>ame <b>L</b>i<b>ST</b>.<br> </li> <p> <li><a name="NOOP"><b><code>NOOP</code></b></a><br> Short for <b>NO OP</b>eration. This command has no functionality, and is often used as a session keepalive mechanism.<br> </li> <p> <li><a name="OPTS"><b><code>OPTS</code></b></a><br> Short for <b>OPT</b>ion<b>S</b>. This command is used to specify optional parameters for the command to follow the <code>OPTS</code> command, if that command supports such optional parameters.<br> </li> <p> <li><a name="PASS"><b><code>PASS</code></b></a><br> Short for <b>PASS</b>word, the client uses this command to convey the password of the user attempting to log into the server.<br> </li> <p> <li><a name="PASV"><b><code>PASV</code></b></a><br> Short for <b>PAS</b>si<b>V</b>e, the client uses this command to ask the server for a port to which the client should connect, indicating a passive data transfer.<br> </li> <p> <li><a name="PBSZ"><b><code>PBSZ</code></b></a><br> Short for <b>P</b>rotection <b>B</b>uffer <b>S</b>i<b>Z</b>e. Used to determine the size of a buffer needed for secure handshaking (supported by <code>mod_tls</code>)<br> </li> <p> <li><a name="PORT"><b><code>PORT</code></b></a><br> 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.<br> </li> <p> <li><a name="PROT"><b><code>PROT</code></b></a><br> Short for <b>PROT</b>ection. Used to set the protection level on the data channel (supported by <code>mod_tls</code>)<br> </li> <p> <li><a name="PWD"><b><code>PWD</code></b></a><br> Short for <b>P</b>rint <b>W</b>orking <b>D</b>irectory.<br> </li> <p> <li><a name="QUIT"><b><code>QUIT</code></b></a><br> </li> <p> <li><a name="REST"><b><code>REST</code></b></a><br> Short for <b>REST</b>art, 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.<br> </li> <p> <li><a name="RETR"><b><code>RETR</code></b></a><br> Short for <b>RETR</b>ieve, 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.<br> </li> <p> <li><a name="RMD"><b><code>RMD</code></b></a><br> Short for <b>R</b>e<b>M</b>ove <b>D</b>irectory, this command is used to have the server delete the requested directory from its filesystem.<br> </li> <p> <li><a name="RNFR"><b><code>RNFR</code></b></a><br> Short for <b>R</b>e<b>N</b>ame <b>FR</b>om.<br> </li> <p> <li><a name="RNTO"><b><code>RNTO</code></b></a><br> Short for <b>R</b>e<b>N</b>ame <b>TO</b>.<br> </li> <p> <li><a name="SITE"><b><code>SITE</code></b></a><br> This command is used for site-specific commands. See below for descriptions of <code>proftpd</code>'s SITE commands.<br> </li> <p> <li><a name="SIZE"><b><code>SIZE</code></b></a><br> </li> <p> <li><a name="STAT"><b><code>STAT</code></b></a><br> </li> <p> <li><a name="STOR"><b><code>STOR</code></b></a><br> Short for <b>STOR</b>e, 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.<br> </li> <p> <li><a name="STOU"><b><code>STOU</code></b></a><br> Short for <b>STO</b>re <b>U</b>unique, 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.<br> </li> <p> <li><a name="SYST"><b><code>SYST</code></b></a><br> </li> <p> <li><a name="TYPE"><b><code>TYPE</code></b></a><br> </li> <p> <li><a name="USER"><b><code>USER</code></b></a><br> An FTP client uses this command to inform the server of the name of the user requesting an FTP session.<br> </li> <p> <li><a name="XCUP"><b><code>XCUP</code></b></a><br> This is an X-variant of the <a href="#CDUP"><code>CDUP</code></a> command, and has the same functionality.<br> </li> <p> <li><a name="XCWD"><b><code>XCWD</code></b></a><br> This is an X-variant of the <a href="#CWD"><code>CWD</code></a> command, and has the same functionality.<br> </li> <p> <li><a name="XMKD"><b><code>XMKD</code></b></a><br> This is an X-variant of the <a href="#MKD"><code>MKD</code></a> command, and has the same functionality.<br> </li> <p> <li><a name="XPWD"><b><code>XPWD</code></b></a><br> This is an X-variant of the <a href="#PWD"><code>PWD</code></a> command, and has the same functionality.<br> </li> <p> <li><a name="XRMD"><b><code>XRMD</code></b></a><br> This is an X-variant of the <a href="#RMD"><code>RMD</code></a> command, and has the same functionality.<br> </li> </ul> <p> <b>Supported <code>SITE</code> commands</b><br> <ul> <li><a name="SITE_CHGRP"><b><code>CHGRP</code></b></a><br> Short for <b>CH</b>ange <b>GR</b>ou<b>P</b>. <p> Example: <pre> SITE CHGRP ftpgroup script.cgi </pre> </li> <p> <li><a name="SITE_CHMOD"><b><code>CHMOD</code></b></a><br> Short for <b>CH</b>ange <b>MOD</b>e. <p> Example: <pre> SITE CHMOD 755 script.cgi </pre> </li> <p> <li><a name="SITE_HELP"><b><code>HELP</code></b></a><br> </li> <p> <li><a name="SITE_MKDIR"><b><code>MKDIR</code></b></a><br> Similar to the <a href="#MKD"><code>MKD</code></a> command, this <code>SITE</code> can be used to create a directory. It will, unlike <code>MKD</code>, also create any directories in the path that do not exist. <p> Example: <pre> SITE MKDIR /path/to/some/dir/that/is/not/there/ </pre> Supported by the <code>mod_site_misc</code> module. </li> <p> <li><a name="SITE_RMDIR"><b><code>RMDIR</code></b></a><br> Similar to the <a href="#RMD"><code>RMD</code></a> command, this <code>SITE</code> can be used to remove a directory. It will, unlike <code>RMD</code>, also delete any files in the directory. <p> Example: <pre> SITE RMDIR /path/to/some/dir/with/files/ </pre> Supported by the <code>mod_site_misc</code> module. </li> <p> <li><a name="SITE_SYMLINK"><b><code>SYMLINK</code></b></a><br> Used to create a symbolic link (<i>a.k.a.</i> a symlink) from the source path (<em>src</em>) to the destination path (<em>dest</em>). <p> Example: <pre> SITE SYMLINK src dest </pre> Supported by the <code>mod_site_misc</code> module. </li> <p> <li><a name="SITE_UTIME"><b><code>UTIME</code></b></a><br> Used to update the access and modification timestamps on a file. <p> Example: <pre> SITE UTIME 200412312359 /path/to/some/file.txt </pre> Supported by the <code>mod_site_misc</code> module. </li> </ul> <p> <b>Unsupported FTP Commands</b><br> <ul> <li><a name="ACCT"><b><code>ACCT</code></b></a><br> Short for <b>ACC</b>oun<b>T</b><br> </li> <p> <li><a name="ALLO"><b><code>ALLO</code></b></a><br> </li> <p> <li><a name="MACB"><b><code>MACB</code></b></a><br> Short for <b>MAC</b>intosh <b>B</b>inary. 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.<br> </li> <p> <li><a name="MODE"><b><code>MODE</code></b></a><br> There are three mode types defined by RFC959; <code>proftpd</code> only supports one (<i>i.e.</i> <b>S</b>tream), and thus this command is not supported.<br> </li> <p> <li><a name="REIN"><b><code>REIN</code></b></a><br> </li> <p> <li><a name="SMNT"><b><code>SMNT</code></b></a><br> </li> <p> <li><a name="STRU"><b><code>STRU</code></b></a><br> Short for <b>STRU</b>cture. <code>proftpd</code> only supports a <code>STRU</code> parameter of type <b>F</b> (for "file"), and so does not support this command.<br> </li> </ul> <p> <hr> Last Updated: <i>$Date: 2004/12/31 19:17:17 $</i><br> </hr> </body> </html>