D. J. Bernstein
Internet publication
FTP: File Transfer Protocol

System-specific verbs

The SITE verb

Servers must reject unrecognized verbs. The IETF adds new verbs at its whim; it assumes that all existing servers will reject those verbs.

Servers use code 500 or 502 to reject unrecognized verbs.

For the same reason, it is dangerous for servers to recognize verbs that are not allocated by the IETF. However, many servers violate this rule.

The SITE verb allows servers to provide server-defined extensions without any risk of conflict with future IETF extensions. A SITE request has a parameter with server-defined syntax and semantics. Typically the parameter consists of a subverb, a space, and a subparameter. Of course, there is a risk of conflict between server-defined extensions.

Here are all the verbs and SITE subverbs that I've heard about: ABOR, ACCT, ADAT, ALLO, APPE, APSV, AUTH, CCC, CDUP, CONF, CWD, DELE, DIGT, ENC, EPRT, EPSV, FEAT, HELP, HOST, LANG, LIST, LPRT, LPSV, MACB, MAIL, MDTM, MIC, MKD, MLFL, MLSD, MLST, MODE, MRCP, MRSQ, MSAM, MSND, MSOM, NLST, NOOP, OPTS, PASS, PASV, PBSZ, PORT, PROT, PWD, QUIT, REIN, REST, RETR, RMD, RNFR, RNTO, SITE, SITE ALIAS, SITE CDPATH, SITE CHMOD, SITE EXEC, SITE GPASS, SITE GROUP, SITE GROUPS, SITE HELP, SITE IDLE, SITE INDEX, SITE MINFO, SITE NEWER, SITE UMASK, SIZE, SMNT, SPSV, STAT, STOR, STOU, STRU, SYST, TYPE, USER, XCUP, XCWD, XMKD, XPWD, XRMD. Implementors should avoid these names in future extensions.

The SITE CHMOD subverb

Many UNIX servers understand a SITE CHMOD y z request as asking for the UNIX permission bits of a file named z to be changed to y. Here y is a sequence of base-8 ASCII digits expressing a number between 000 octal and 777 octal.

The MACB verb

Macintosh FTP servers understand a MACB E request as asking for the two forks of a Macintosh file to be encoded in MacBinary format.

Note to protocol designers: The information conveyed by MACB E could have instead been conveyed in FTP pathnames without any change to the underlying protocol. Some UNIX servers support analogous .tar and .gz filename extensions.