proftpd mod exec与<if user> </if user>一起使用

时间:2015-02-16 20:53:53

标签: configuration proftpd

有没有办法启用模块&#39; mod_exec&#39;只有某个proftdp用户?

我用--with-modules = mod_exec:mod_ifsession编译了proftp然后以这种方式配置...

<IfModule mod_exec.c>
    <IfUser stefano>
        ExecEngine              on
        ExecLog                 /opt/proftpd-master/logs/proftpd.semics.mod_exec.log
        ExecOptions             logStderr logStdout
        ExecBeforeCommand       STOR,RETR       /path/to/handler.sh EVENT=BeforeCommand FILE='%f'
        ExecOnCommand           STOR,RETR       /path/to/handler.sh EVENT=OnCommand     FILE='%f'
    </IfUser>
</IfModule>

或者这个:

<IfUser stefano>
    <IfModule mod_exec.c>
        ExecEngine              on
        ExecLog                 /opt/proftpd-master/logs/proftpd.semics.mod_exec.log
        ExecOptions             logStderr logStdout
        ExecBeforeCommand       STOR,RETR       /path/to/handler.sh EVENT=BeforeCommand FILE='%f'
        ExecOnCommand           STOR,RETR       /path/to/handler.sh EVENT=OnCommand     FILE='%f'
    </IfModule>
</IfUser>

没有成功。似乎mod_exec仅在条件语句之外配置时才起作用。

我的目标是仅为用户“stefano”启用mod_exec。和/或为每个用户配置相应的几个mod_exec配置。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

默认情况下必须启用mod_exec.c,然后在内部可以为不同的用户配置不同的操作:

<IfModule mod_exec.c>
    ExecEngine on
    ExecLog /opt/proftpd-master/logs/proftpd_mod_exec.log
    ExecOptions logStderr logStdout

    <IfUser stefano>
        ExecBeforeCommand STOR,RETR /path/to/script.sh EVENT=BeforeCommand FILE='%f'
        ExecOnCommand STOR,RETR /path/to/script.sh EVENT=OnCommand FILE='%f'
    </IfUser>
</IfModule>

感谢TJ Saunders。我希望这会有所帮助。