mod_copy
The mod_copy module implements SITE CPFR and SITE CPTO commands (analogous to RNFR and RNTO), which can be used to copy files/directories from one place to another on the server without having to transfer the data to the client and back.
SITE CPFR
SITE CPTO
RNFR
RNTO
This module is contained in the mod_copy.c file for ProFTPD 1.3.x, and is not compiled by default. Installation instructions are discussed here.
mod_copy.c
The most current version of mod_copy is distributed with the ProFTPD source code.
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.
SITE
<VirtualHost>
<Global>
The CopyEngine directive enables or disables the module's handling of SITE COPY et al commands. If it is set to off this module ignores these commands.
CopyEngine
SITE COPY
The CopyOptions directive is used to configure various optional behavior of mod_copy.
CopyOptions
The currently implemented options are:
NoDeleteOnFailure
The mod_copy file, when a copying operation fails, will delete the destination file by default. If, however, you do want to keep that destination file when a failure happens, use this option.
The syntax for SITE CPFR is:
SITE CPFR source-path
See also: SITE CPTO
The syntax for SITE CPTO is:
SITE CPTO destination-path
A client wishing to copy a file/directory first sends a SITE CPFR command, then a SITE CPTO; this is similar to how renames are handled using RNFR and RNTO.
Use of these SITE command can be controlled via <Limit> sections, e.g.:
<Limit>
<Limit SITE_COPY> AllowUser alex DenyAll </Limit>
See also: SITE CPFR
Logging The mod_copy module supports trace logging, via the module-specific log channels:
proftpd.conf
TraceLog /path/to/ftpd/trace.log Trace copy:20
$ ./configure --with-modules=mod_copy
$ ./configure --enable-dso --with-shared=mod_copy
$ make $ make install
For those with an existing ProFTPD installation, you can use the prxs tool to add mod_copy, as a DSO module, to your existing server:
prxs
$ prxs -c -i -d mod_copy.c