1.一种用户空间文件系统中ACL权限的实现方法,其特征在于,包括:
引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类;
在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL;
当接收到文件操作请求时,通过所述client类中permission_walk方法将与所述文件操作请求对应的用户参数传递给所述权限校验类PosixACL,利用所述权限校验类PosixACL中的权限校验方法对所述文件操作请求进行权限验证。
2.如权利要求1所述的方法,其特征在于,所述引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类之后,还包括:
将权限校验类PosixACL的命名空间设置为posix,完成权限校验类PosixACL与client类的对接;所述client类位于用户态文件系统的client.cc文件中。
3.如权利要求1所述的方法,其特征在于,所述利用所述权限校验类PosixACL中的权限校验方法对所述文件操作请求进行权限验证之后,还包括:
若验证成功,将所述文件操作请求发送至集群服务器,若验证失败,返回验证失败消息。
4.如权利要求1所述的方法,其特征在于,所述在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL之前,还包括:
关闭所述用户空间文件系统FUSE中内核模块的默认校验开关。
5.如权利要求4所述的方法,其特征在于,所述关闭所述用户空间文件系统FUSE中内核模块的默认校验开关,包括:
将所述用户空间文件系统FUSE中内核模块的默认权限参数fuse_default_permissions设置为false。
6.如权利要求1所述的方法,其特征在于,所述权限校验类PosixACL为基于Posix标准的ACL校验类。
7.如权利要求1至6中任意一项所述的方法,其特征在于,所述在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL之后,还包括:
在client.cc文件中的setxattr函数和removexattr函数中均添加检查参数strncmp。
8.如权利要求7所述的方法,其特征在于,在client.cc文件中的setxattr函数和removexattr函数中均添加检查参数strncmp之后,还包括:
对操作接口fuse_lowlevel_ops里的校验添加宏开关。
9.如权利要求8所述的方法,其特征在于,所述对操作接口fuse_lowlevel_ops里的校验添加宏开关之后,还包括:
修改Makefile.am的编译文件列表,重新编译。