是否可以为 proftpd 主目录定义自定义基本路径?

是否可以为 proftpd 主目录定义自定义基本路径?

我知道DefaultRoot ~您可以使用该设置将用户限制在他们的主目录中,但我需要对其进行自定义。

ldap当使用 proftpd 进行身份验证时,我通过获取用户的主目录auth-pam。我无法控制主目录路径,但我需要它们位于我的glusterfsfusemount上/mnt/glusterfs

我希望的是,如果我得到一个用户的家,/some/directoryproftpd 会把他们关进/mnt/glusterfs/some/directory

所以基本上我想要类似的东西DefaultRoot /base/path/~

如果你们(或女士)能想到任何解决方案,无论是修改代码还是任何创造性的解决方案,我都会很高兴听到。

提前致谢

答案1

如果你的用户的正常主目录包含用户名,例如用户“foo”的“/home/foo”,那么你可能可以使用这样的东西:

DefaultRoot /mnt/glusterfs/home/%u

%u变量将被解析为经过验证的用户名。

另一种更复杂的方法是使用mod_rewrite模块和RewriteHome指令;RewriteHome指令文档包含正则表达式/替换可能是什么样子的示例。并且RewriteHome功能适用不管主目录的来源,无论是 LDAP、系统功能,ETC

希望这可以帮助!

答案2

您可以使用以下指令为所有 ftp 用户创建基本路径。这将限制用户只能访问此路径

LDAPGenerateHomedir on
LDAPForceGeneratedHomedir on
LDAPGenerateHomedirPrefix /mnt/glusterfs/some/directory/

相关内容