一种基于多密码控制用户目录与权限的方法及装置与流程

文档序号:31729388发布日期:2022-10-05 01:29阅读:98来源:国知局
一种基于多密码控制用户目录与权限的方法及装置与流程

1.本发明涉及用户权限管理领域,尤其涉及一种基于多密码控制用户目录与权限的方法及装置。


背景技术:

2.现有的ftp/sftp(file transfer protocol,文件传输协议/ssh file transfer protocol,ssh文件传输协议)服务器的账号体系大多采用以下两种方法之一:一种是和操作系统的用户和密码绑定,一种是设置固定的虚拟账号。这两种方法都有着诸多弊端,包括:不支持密码自动过期;不支持多密码并存,修改密码无法支持平滑过渡,无法满足新密码立即生效、旧密码到期失效;不支持通过多密码实现用户的目录和权限隔离;如果需要添加账号、删除账号或修改密码,需要逐一进行修改,不支持一键针对所有ftp/sftp服务器的账号密码进行修改并实时生效。


技术实现要素:

3.本发明的目的是提供一种基于多密码控制用户目录与权限的方法及装置,旨在实现用户需要同账号多密码、用户通过密码进行目录和权限隔离、密码修改平滑过渡、一键修改所有服务器密码并实时生效等需求。
4.第一方面,提供了一种基于多密码控制用户目录与权限的方法,应用于用户文件系统,所述用户文件系统包括客户端、服务端、虚拟文件系统、分布式文件系统和数据库,所述方法包括:
5.服务端接收从客户端发送的用户名和密码,在数据库中获取所述用户名和密码的组合对应的根目录和权限,其中,一个用户名对应至少一个密码,不同的用户名和密码的组合对应不同的根目录和权限,所述用户名和密码的组合拥有生存时间值ttl;
6.服务端根据所述根目录和权限,构建虚拟文件系统,并建立所述虚拟文件系统与分布式文件系统之间的连接;
7.服务端将从客户端接收到的命令从虚拟文件系统映射到分布式文件系统中执行,并将执行结果返回给客户端。
8.在一种可能的实施方式中,所述服务端为ftp或sftp服务器。
9.在一种可能的实施方式中,使用nginx服务器与虚拟ip技术反向代理至少2个ftp或sftp服务器。
10.在一种可能的实施方式中,所述密码加密存储于所述数据库中。
11.在一种可能的实施方式中,所述加密存储使用md5或rsa加密算法。
12.在一种可能的实施方式中,所述数据库为redis数据库。
13.在一种可能的实施方式中,所述分布式文件系统为hadoop分布式文件系统或简单存储服务s3。
14.第二方面,提供了一种基于多密码控制用户目录与权限的装置,包括:
15.接收单元,用于接收从客户端发送的用户名和密码,在数据库中获取所述用户名和密码的组合对应的根目录和权限,其中,一个用户名对应至少一个密码,不同的用户名和密码的组合对应不同的根目录和权限,所述用户名和密码的组合拥有生存时间值ttl;
16.系统构建单元,用于根据所述根目录和权限,构建虚拟文件系统,并建立所述虚拟文件系统与分布式文件系统之间的连接;
17.执行单元,用于将从客户端接收到的命令从虚拟文件系统映射到分布式文件系统中执行,并将执行结果返回给客户端。
18.本发明提出的一种基于多密码控制用户目录与权限的方法及装置,拥有以下优势:1.密码自动过期:每个密码可以设置ttl(time to live,生存时间值),到时间自动过期。2.多密码共存:一个用户能够同时生效多个密码,并且每个密码可以设置有效期。在需要修改密码的时候,可以对旧的密码设置一个有效期,到期自动失效,而新密码马上生效。3.基于密码的目录和权限隔离:每个密码可以设置不同的目录和权限,以达到一个账号下通过多个密码进行目录和权限隔离的目的。4.账号密码修改一键生效:一键修改账号密码,并且所有ftp/sftp服务器实时生效。
附图说明
19.图1为本发明实施例公开的一种基于多密码控制用户目录与权限的方法的流程图;
20.图2为本发明实施例公开的一种系统架构图;
21.图3为本发明公开的一个实施例的时序图;
22.图4为本发明实施例公开的一种基于多密码控制用户目录与权限的装置的示意性框图。
具体实施方式
23.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
24.图1为本发明实施例公开的一种基于多密码控制用户目录与权限的方法的流程图。
25.在步骤s101,用户在客户端通过ftp/sftp协议输入用户名和密码之后,服务端接收从客户端发送的用户名和密码,动态地在数据库中获取所述用户名和密码的组合对应的根目录和权限。如果获取成功,则登录成功;如果获取不到对应信息或信息已过期,则登录失败。
26.在步骤s102,在获取到用户的根目录和权限之后,服务端根据所述根目录和权限,构建虚拟文件系统,并建立所述虚拟文件系统与分布式文件系统之间的连接。
27.具体地,分布式文件系统可以是hdfs(hadoop distribute file system,hadoop分布式文件系统)或者s3(simple storage service,由亚马逊云提出的简单存储服务)。虚拟文件系统与linux系统的vfs(virtual file system,虚拟文件系统)是类似的概念,能够采用统一的文件接口操作不同的分布式文件系统。系统还拥有路径映射功能,用于把在虚拟文件系统的操作映射到不同的分布式系统的指定路径下。使用java文件系统接口作为虚拟文件系统的规范,实现对分布式文件系统hdfs和s3的适配。
28.在步骤s103,服务端将从客户端接收到的命令从虚拟文件系统映射到分布式文件系统中执行,并将执行结果返回给客户端。
29.具体地,服务端根据用户的目录信息来设置根路径对应实际文件系统的路径,并且根据用户的权限信息设置生成权限目录树,用户登录之后看到的就是虚拟文件系统,用户执行的操作提交到ftp/sftp服务器之后,会根据目录树判断权限,再去实际文件系统中根据对应路径进行操作。
30.如果不同密码设置的根目录对应的实际目录不同,则在使用不同密码登录之后,即使进入到虚拟文件系统中相同的目录下,看到的内容也是不同的,该目录对应实际文件系统中不同的目录,从而实现目录隔离。
31.如果不同密码设置根目录对应的实际目录相同,但是设置了不同的权限,则使用每个密码登录之后,对于目录的进入、上传和下载等权限,也是可以设置成不同的,从而做到权限隔离。
32.整个系统记录用户登录、登出、上传和下载等操作的关键操作信息,并且传输到数据库中,然后统一收集用户关键操作信息,从而有效地监控和管理用户的行为,并且进行用户行为分析。
33.图2为本发明实施例公开的一种系统架构图。
34.用户管理模块用于维护用户名和密码信息,对密码进行加密后存储,每个用户名和密码都有对应的目录和权限,并设置某个实际分布式文件系统的目录作为根目录。不同的用户名和密码的组合对应不同的根目录和权限,并且设置ttl,来维护用户名和密码的有效期。
35.具体地,对密码的加密算法可以是md5、rsa等加密算法。
36.数据库在存储的时候,将每个用户名和密码的组合作为一条记录,所以同一个用户名可以对应多个密码。
37.具体地,数据库使用redis作为存储介质,把用户名和加密后的密码组合作为key,把根路径和权限组成一个json作为value存储到redis中,并且设置ttl。
38.在一个例子中,用户在新建一个用户名和密码的组合时,系统会将此用户名和加密后的密码组成一个key,并把用户对应设置的根路径和权限组成一个json作为value,将此key-value对存入redis中,并设置ttl,例如设置为3天。在3天之内,用户可以使用此用户名和密码登录系统,进入对应的文件路径,拥有相应的权限,并执行命令。在3天之后,redis会自动清理该key,清理之后ftp/sftp服务器就查询不到该用户名和密码的组合对应的key,当用户再次试图使用这组用户名和密码进行登录时,系统会提示登录失败。
39.在另一个例子中,用户在新建一个用户名和密码的组合时,系统会将此用户名和加密后的密码组成一个key,并把用户对应设置的根路径和权限组成一个json作为value,将此key-value对存入redis,所有的ftp/sftp服务器都可以该用户名和密码进行查询和验证,从而实现一键添加账户。用户从redis删除key后,则所有ftp/sftp服务器则就无法查询到该用户名和密码,则无法登录,从而实现一键删除账户。用户从redis删除旧的key,添加旧用户名和新的密码所组成的新key以及对应的目录和权限的value,则所有ftp/sftp服务器无法查询到旧密码,且能够立刻查询到新密码,从而实现一键修改密码。
40.使用高性能高可用的代理方案来代理多个ftp/sftp服务器,实现用户对ftp/sftp
多服务器的无感知登录,其中,ftp协议只代理控制端口。
41.具体地,使用nginx服务器和虚拟ip技术来做代理,虚拟ip在多个服务器之间可以自动故障切换,用户使用客户端指定虚拟ip和nginx上ftp/sftp服务器的代理端口进行登录、登出和其他操作。
42.虚拟文件系统是与linux系统的vfs类似的概念,能够采用统一的文件接口操作不同的分布式文件系统。
43.高性能高一致分布式文件系统可以选择hdfs或者s3。
44.图3为本发明公开的一个实施例的时序图。
45.用户在ftp/sftp客户端输入用户名和密码之后,发送到ftp/sftp服务器端,ftp/sftp服务器将用户名和加密后的密码组成key,到redis数据库中查询对应的value,查询成功后,返回对应的根目录和权限列表。
46.ftp/sftp服务器端根据根目录和权限列表构建虚拟文件系统,并与分布式文件系统进行连接,连接成功后,对ftp/sftp客户端返回登录成功的信息。
47.用户在ftp/sftp客户端发送想要执行的命令,此处以ls命令为例,用于查询文件列表信息。ftp/sftp服务器端接收到ls命令后,在虚拟文件系统中执行ls命令,虚拟文件系统将根路径和用户路径进行组合后,在对应的分布式文件系统中执行ls命令。分布式文件系统返回文件列表信息给虚拟文件系统,然后由ftp/sftp服务器一路返回给ftp/sftp客户端,命令执行完毕。
48.用户在ftp/sftp客户端发送登出命令,ftp/sftp服务器端接收到登出命令后,对虚拟文件系统发出关闭命令,虚拟文件系统则断开自身与分布式文件系统之间的连接,同时向ftp/sftp服务器返回关闭完成信息。ftp/sftp服务器在接收到后,向ftp/sftp客户端返回登出成功信息,登出成功。
49.图4为本发明实施例公开的一种基于多密码控制用户目录与权限的装置的示意性框图。该装置400包括接收单元401,系统构建单元402和执行单元403。
50.接收单元401接收从客户端发送的用户名和密码,在数据库中获取所述用户名和密码的组合对应的根目录和权限,其中,一个用户名对应至少一个密码,不同的用户名和密码的组合对应不同的根目录和权限,所述用户名和密码的组合拥有生存时间值ttl;
51.系统构建单元402根据所述根目录和权限,构建虚拟文件系统,并建立所述虚拟文件系统与分布式文件系统之间的连接;
52.执行单元403将从客户端接收到的命令从虚拟文件系统映射到分布式文件系统中执行,并将执行结果返回给客户端。
53.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1