mod_rcs
mod_rcs.c
file for
ProFTPD 1.2, found here,
and is not compiled by default. Installation instructions are discussed
here.
This module is designed to provide basic version control transparently to files uploaded to the server. It uses RCS as the version control system. Some notes on the usage of this module follows the configuration directive explanations.
The most current version of mod_rcs
can be found at:
http://www.castaglia.org/proftpd/
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.
2002-01-30: Thanks to Gabe Frost <gfrost at gostnet.com> for the initial idea for this module.
<VirtualHost>
, <Global>
, <Directory>
The RCSEngine
directive enables or disables the module's use of
RCS.
<VirtualHost>
, <Global>
, <Directory>
The RCSMode
directive is used to configure the mode of the file
once checked in. As documented in the RCS man pages, ci
drops
all write bits on the checked-in file. When checking out the file using
co
, though, only the user write bit is turned on. For files that
require group write permissions, as for shared files, the mode of the file
once uploaded and checked in can be set to the required mode using this
directive.
<VirtualHost>
, <Global>
, <Directory>
The RCSOwner
directive is used to configure the ownership
of the uploaded file after check in. mod_rcs
changes the
ownership of the file in order to undo some of the changes RCS makes, but
these changes cause any configured UserOwner
or
GrouuOwner
that apply to that context to be ignored as well.
Use this directive instead of UserOwner
and
GroupOwner
in that case.
For either the user or group parameters, a "~" may be given, which will be substituted with the logged in user's UID or primary GID as appropriate. This is to allow changing just the user or the group ownership using one directive.
See Also: GroupOwner, UserOwner
First, RCS must be installed on the system; this is a very common tool, and so
is probably already there. As long as ci
and co
are on the PATH
seen by proftpd
, this module will
work.
Unfortunately, RCS does not provide an API for applications such as
proftpd
. One of the consequences of this is that use of
DefaultRoot
will make the RCS commands inaccessible. To work
around this, either copy the
binaries into the
DefaultRoot
directory (not a good solution if
DefaultRoot ~
is being used), or use some of the filesystem
mounting tricks mentioned here.
mod_rcs
uses root privileges to undo some of the mode and ownership
changes that RCS makes to RCS-controlled files; this is done to keep things
as transparent to the client as possible. This also means that if
mod_linuxprivs
is in use as well, mod_rcs
will
not be able to make the necessary changes; the log will show messages
of "Operation not permitted".
mod_rcs
, copy the mod_rcs.c
file
into
proftpd-dir/contrib/after unpacking the latest proftpd-1.2 source code. Then follow the usual steps for using third-party modules in proftpd:
./configure --with-modules=mod_rcs make make install