我正在使用LDAP服务器验证ProFTPD (用mod_sftp)实例。我希望有以下设置:
/home/ftp的所有用户的色度。(这行得通)。
现在,我想将特定的LDAP组移到/home/ftp下的另一个文件夹中。例如,在LDAP组“外部”中的用户只应该看到/home/ftp/external,而不属于该组的用户应该看到/home/ftp。
所有上传的文件都应该属于同一个Linux用户。
我的ldap.conf是
<IfModule mod_ldap.c>
LDAPServer ldap://localhost:389/??sub
LDAPDefaultUID 2004
LDAPDefaultGID 2004
LDAPForceDefaultGID on
LDAPForceDefaultUID on
LDAPGenerateHomedir on
LDAPGenerateHomedirPrefix /home/ftp
LDAPGenerateHomedirPrefixNoUsername on
CreateHome off
LDAPBindDN "cn=admin,dc=example,dc=com" password
LDAPUsers ou=Users,DC=example,DC=com (uid=%u)
</IfModule>在我的proftpd.conf中,我使用:
DefaultRoot /home/ftp实际上我不知道该怎么进行或者怎么构造它..。我可能能够稍微更改设置,并创建少量的Linux用户或Linux组,但我无法更改LDAP服务器(它是我无法访问的Active Directory ),因此最好在ProFTPD中配置所有内容。
如果目录结构可以在AD中设置(可能是主目录吗?),这样我就不必为每个“特殊”组更改ProFTPD配置,这将是一个额外的好处。
如有任何建议,将不胜感激:)
谢谢!
发布于 2016-04-27 15:51:20
ProFTPD的DefaultRoot指令可以采用一个可选的组表达式,该表达式表示是否将DefaultRoot应用于该用户(根据他们的组成员身份),或者不使用。
例如,您可以使用:
DefaultRoot /home/ftp/external external
DefaultRoot /home/ftp第一个DefaultRoot告诉/home/ftp/external用户如果他们是“外部”组的成员。否则什么也不做。第二个/最后一个DefaultRoot是"catch all“规则,用于将所有用户调色到/home/ftp。首先找到匹配的DefaultRoot指令,按照配置文件中定义的顺序,wins。
请注意,要使用户的组成员身份也由mod_ldap提供,您可能还需要在配置中使用LDAPGroups指令。
希望这能有所帮助!
https://serverfault.com/questions/773308
复制相似问题