1.通过pyftpdlib模块搭建服务
from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler,ThrottledDTPHandler from pyftpdlib.servers import FTPServer from pyftpdlib.log import LogFormatter import logging #设置日志同时输入到文件与屏幕 logger = logging.getLogger() logger.setLevel(logging.INFO) ch = logging.StreamHandler() fh = logging.FileHandler(filename="ftpserver.log",encoding="utf-8") ch.setFormatter(LogFormatter()) fh.setFormatter(LogFormatter()) #将日志输出到屏幕 logger.addHandler(ch) #将日志输出到文件 logger.addHandler(fh) #实例化虚拟用户,这是FTP验证首要条件。 authorizer = DummyAuthorizer() #添加用户,权限,目录 authorizer.add_user("user","123456","e:Pic",perm="elradfmw") #匿名用户 #authorizer.add_anonymous("e:Pic") #初始化ftp句柄 handler = FTPHandler handler.authorizer = authorizer #添加被动端口范围 handler.passive_ports = range(2000,2100) #下载上传速度设置 dtp_handler = ThrottledDTPHandler dtp_handler.read_limit = 300 * 1024 #300k dtp_handler.write_limit = 300 * 1024 handler.dtp_handler = dtp_handler #监听ip和端口,linux需要root用户才能运行21端口 server = FTPServer(("0.0.0.0",21),handler) #最大连接数 server.max_cons = 100 server.max_cons_per_ip = 10 #开始服务,自带日志打印信息 server.serve_forever()
2.权限解释
读取权限:
- “e” =更改目录(CWD,CDUP命令)
- “l” =列表文件(LIST,NLST,STAT,MLSD,MLST,SIZE命令)
- “r” =从服务器检索文件(RETR命令)
写入权限:
- “a” =将数据追加到现有文件(APPE命令)
- “d” =删除文件或目录(DELE,RMD命令)
- “f” =重命名文件或目录(RNFR,RNTO命令)
- “m” =创建目录(MKD命令)
- “w” =将文件存储到服务器(STOR,STOU命令)
- “M”=更改文件模式/权限(SITE CHMOD命令)
- “T”=更改文件修改时间(SITE MFMT命令)
参考文档:https://pyftpdlib.readthedocs.io/en/latest/index.html
「 文章如果对你有帮助,请点个赞哦^^ 」 
0
若无特殊注明,文章均为本站原创或整理发布。
转载请注明本文地址:https://om.fangxiaoxiong.com/2418.html