Domů > Proftpd > Odstranění nadbytečných mezer v ProFTPD

Odstranění nadbytečných mezer v ProFTPD

ftpPoslední dobou jsem se začal setkávat s problémy uživatelů, kteří nemohli smazat nebo přejmenovat soubor na FTP serveru. Prakticky všechny tyto případy měly jednu společnou vlastnost – soubor obsahoval mezeru na začátku nebo na konci svého názvu. Bohužel s takovýmito soubory díky ne zrovna nejlepší implementaci FTP protokolu spousta klientů nepracuje.


Stejný problém jsem našel i na několika diskusních fórech kdy uživatelé problém obvykle řsšli nějakým find scriptem v cronu, což mi nepřišlo jako úplně nejvhodnější řešení. Začal jsem tedy důkladněji zkoumat mizernou dokumentaci jinak zajímavého modulu mod_rewrite.c do ProFTPD.

Nakonec se mi podařilo napsat pravidla odstraňující tyto nadbytečné mezery na začátku a na konci názvu souboru nebo ardesáře.


LoadModule mod_rewrite.c

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteLog none
RewriteMap replace int:replaceall
RewriteCondition %m STOR [NC,OR]
RewriteCondition %m MKDIR [NC]
RewriteRule "^ +(.*)" "$1"
RewriteRule "(.*) +$" "$1"
</IfModule>

ProFTPD je samozřejmě nutné mít zkompilované s podporou modulu mod_rewrite.c.

Zdrojový RPM balík ProFTPD pro RHEL/CentOS se všemi na těchto stránkách zmíněnýmí možnostmi je možné stáhnout zde: http://glux.org/download/proftpd-1.3.3b-8.src.rpm.

  1. Hexim
    25.03.2011 na 14:42 | #1

    Zdravim,

    skvely napad, ale nejaka chybicka. Pokusil jsem se zkopirovat adresar ‘ aaaa’ a v pohode se vytvoril. Log pise:

    rewrite_fixup(): CWD arg ‘ aaaa’ does not match RewriteRule regex

    S pozdravem Hexim

  1. Žádné zpětné odkazy