1

我被要求使用 python 设置一个 FTP 服务器,不同的用户可以登录,并且根据他们的登录将显示不同的文件结构。

结构的一部分是只读的,另一部分是写、读、创建和删除。

服务器上不存在文件结构和文件,当用户通过查询外部服务器扩展文件夹时,必须以惰性方式构建。

我想,服务器需要从外部模仿 FTP 接口/协议,但在内部的工作方式完全不同。

我想知道这项工作有多大或有多大难度,因为我需要提供某种时间尺度来完成这项工作。

那里已经有这样的东西了吗?有没有人做过类似的事情?

尝试实施这种模型有什么明显的问题吗?

4

2 回答 2

4

twisted项目将是显而易见的起点;以下示例启动一个简单的 FTP 服务器,该服务器根据密码文件对用户进行身份验证,但也允许匿名访问

from twisted.protocols.ftp import FTPFactory, FTPRealm
from twisted.cred.portal import Portal
from twisted.cred.checkers import AllowAnonymousAccess, FilePasswordDB
from twisted.internet import reactor

p = Portal(FTPRealm('./'),
           [AllowAnonymousAccess(), FilePasswordDB("pass.dat")])
f = FTPFactory(p)

reactor.listenTCP(21, f)
reactor.run()

您可以从那里轻松扩展。如何实现“文件”和“目录”完全取决于您。

于 2012-09-24T10:13:15.793 回答
0

为什么是蟒蛇?我的意思是python与它有什么关系?我会寻找一些 PAM 模块,能够在登录时创建用户特定的虚拟文件系统结构,如果没有现成的,考虑修改一些 pam_mount,类似的东西..

http://pam-mount.sourceforge.net

于 2012-09-24T10:12:10.833 回答