1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
<html>
<head>
<title>ProFTPD module mod_case</title>
</head>
<body bgcolor=white>
<hr>
<center>
<h2><b>ProFTPD module <code>mod_case</code></b></h2>
</center>
<hr><br>
The <code>mod_case</code> module is designed to help ProFTPD be
case-insensitive, for those sites that may need it (<i>e.g.</i> those
that are migrating from a Windows environment or have mounted Windows
filesystems).
<p>
The <code>mod_case</code> module works by performing two checks on the
filename used in FTP commands. First, <code>mod_case</code> will scan the
directory to see if there is already a file whose name exactly matches the
given filename. If not, <code>mod_case</code> will then looks for any
case-insensitive matches.
<p>
This module is contained in the <code>mod_case.c</code> file for
ProFTPD 1.3.<i>x</i>, and is not compiled by default. Installation instructions
are discussed <a href="#Installation">here</a>.
<p>
The most current version of <code>mod_case</code> can be found at:
<pre>
<a href="https://github.com/Castaglia/proftpd-mod_case">https://github.com/Castaglia/proftpd-mod_case</a>
</pre>
<h2>Author</h2>
<p>
Please contact TJ Saunders <tj <i>at</i> castaglia.org> with any
questions, concerns, or suggestions regarding this module.
<h2>Directives</h2>
<ul>
<li><a href="#CaseEngine">CaseEngine</a>
<li><a href="#CaseIgnore">CaseIgnore</a>
<li><a href="#CaseLog">CaseLog</a>
</ul>
<hr>
<h2><a name="CaseEngine">CaseEngine</a></h2>
<strong>Syntax:</strong> CaseEngine <em>on|off</em><br>
<strong>Default:</strong> off<br>
<strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br>
<strong>Module:</strong> mod_case<br>
<strong>Compatibility:</strong> 1.2.9 and later
<p>
The <code>CaseEngine</code> directive enables or disables the module's
runtime case-matching engine. If it is set to <em>off</em> this module does no
case-insensitive checking. Use this directive to disable the module instead of
commenting out all <code>mod_case</code> directives.
<p>
<hr>
<h2><a name="CaseIgnore">CaseIgnore</a></h2>
<strong>Syntax:</strong> CaseIgnore <em>on|off|cmd-list</em><br>
<strong>Default:</strong> off<br>
<strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code><br>
<strong>Module:</strong> mod_case<br>
<strong>Compatibility:</strong> 1.2.9 and later
<p>
The <code>CaseIgnore</code> directive is used to enable case-insensitive
matching, possibly on a per-FTP command basis. If it is set to <em>off</em>,
no case-insensitive matching is performed. If set to <em>on</em>, then
case-insensitive matcing is performed for all FTP commands that
<code>mod_case</code> handles (see below). Otherwise, one can configure
a <em>cmd-list</em>, which is a comma-separated list of FTP commands for
which <code>mod_case</code> is to do case-insensitive matching.
<p>
The <code>mod_case</code> module handles the following FTP commands:
<ul>
<li><code>APPE</code>
<li><code>CWD</code>/<code>XCWD</code>
<li><code>DELE</code>
<li><code>LIST</code>
<li><code>MDTM</code>
<li><code>MKD</code>/<code>XMKD</code>
<li><code>MLSD</code>
<li><code>MLST</code>
<li><code>NLST</code>
<li><code>RETR</code>
<li><code>RMD</code>/<code>XRMD</code>
<li><code>RNFR</code>
<li><code>RNTO</code>
<li><code>SITE CPFR</code> (from <a href="mod_copy.html"><code>mod_copy</code></a>)
<li><code>SITE CPTO</code> (from <a href="mod_copy.html"><code>mod_copy</code></a>)
<li><code>SITE CHGRP</code>
<li><code>SITE CHMOD</code>
<li><code>SIZE</code>
<li><code>STAT</code>
<li><code>STOR</code>
</ul>
<p>
Examples:
<pre>
# Enable case-insensitivity for all FTP commands handled by mod_case
CaseIgnore on
# Enable case-insensitivity only for downloads
CaseIgnore RETR
# Enable case-insensitivity for uploads and downloads
CaseIgnore APPE,RETR,STOR
</pre>
<p>
<hr>
<h2><a name="CaseLog">CaseLog</a></h2>
<strong>Syntax:</strong> CaseLog <em>path</em>|"none"<br>
<strong>Default:</strong> None<br>
<strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br>
<strong>Module:</strong> mod_case<br>
<strong>Compatibility:</strong> 1.2.9 and later
<p>
The <code>CaseLog</code> directive is used to a specify a log file for
<code>mod_case</code> reporting and debugging, and can be done a per-server
basis. The <em>path</em> parameter must be the full path to the file to use for
logging. Note that this path must <b>not</b> be to a world-writable
directory and, unless <code>AllowLogSymlinks</code> is explicitly set to
<em>on</em> (generally a bad idea), the path must <b>not</b> be a symbolic
link.
<p>
If <em>path</em> is "none", no logging will be done at all; this
setting can be used to override a <code>CaseLog</code> setting inherited from
a <code><Global></code> context.
<p>
<hr>
<h2><a name="Installation">Installation</a></h2>
To install <code>mod_case</code>, copy the <code>mod_case.c</code> file into
<pre>
<i>proftpd-dir</i>/contrib/
</pre>
after unpacking the latest proftpd-1.3.<i>x</i> source code. Then follow the
usual steps for using third-party modules in proftpd:
<pre>
./configure --with-modules=mod_case
make
make install
</pre>
<p>
<hr><br>
<font size=2><b><i>
© Copyright 2004-2015 TJ Saunders<br>
All Rights Reserved<br>
</i></b></font>
<hr><br>
</body>
</html>
|