proftpd mod_exec 结合 <IfUser>

proftpd mod_exec in conjuncion with <IfUser>

有没有办法只对特定的 proftdp 用户启用模块 'mod_exec'?

我用 --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' and/or 启用 mod_exec 以便每个用户配置相应的多个 mod_exec 配置。

有什么建议吗?

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 桑德斯。希望对您有所帮助。