首页 存档 技术 查看内容

Linux自主访问控制机制模块之详细描述-函数实现机制(29)

2018-3-30 13:00 |来自: 互联网 257 0

摘要: 文件五 acl.c 文件描述 acl.c的完整文件名称为fs/ext4/acl.c,该文件定义了ACL在ext4文件系统中相关操作的具体实现。 主要变量及宏定义 对于该文件中涉及的变量及宏的含义参见2.3小节,这里不再赘述。 结构体定义 对 ...

文件五 acl.c

文件描述

acl.c的完整文件名称为fs/ext4/acl.c,该文件定义了ACL在ext4文件系统中相关操作的具体实现。

主要变量及宏定义

对于该文件中涉及的变量及宏的含义参见2.3小节,这里不再赘述。

结构体定义

对于该文件使用的结构体如posix_acl等参见2.3小节,这里不再赘述。

外部函数

对于该文件涉及的外部函数,详见2.3小节,这里不再赘述。

内部函数

对于该文件定义的相关函数,下面进行详细解释:

1.ext4_acl_from_disk()

函数原型:staticstruct posix_acl*ext4_acl_from_disk(constvoid *value, size_t size);

函数参数:value表示磁盘格式的ACL在缓存中的地址;size表示ACL的长度。

函数功能:将ACL的磁盘表示格式转化为内存表示格式。

返回值:成功执行时返回指向ACL内存表示形式的指针;失败时返回指向相应的错误信息的指针。

2.ext4_acl_to_disk()

函数原型:static void *ext4_acl_to_disk(conststruct posix_acl*acl, size_t *size);

函数参数:acl指向内存格式的ACL;size表示存放访问控制列表的内存空间的长度。

函数功能:将ACL从内存表示形式转化为磁盘表示形式。

返回值:成功时返回指向磁盘格式的ACL指针;失败时返回相应的指向错误信息的指针。

3.ext4_get_acl()

函数原型:struct posix_acl *ext4_get_acl(struct inode *inode, int type);

函数参数:inode表示要操作的目标文件;type表示访问控制列表的类型。

函数功能:根据参数type指定的类型获取指定索引节点的ACL属性。

返回值:成功时返回指向相应ACL的指针;失败时返回指向错误信息的指针。

4.ext4_set_acl

函数原型:static int ext4_set_acl(handle_t *handle, struct inode *inode, int type,

struct posix_acl *acl);

函数参数:handle表示用于日志处理的原子更新操作;inode表示用于设置的目标文件; type表示访问控制列表的类型;acl指向文件的新的访问控制列表。

函数功能:根据参数acl设置文件的指定类型的访问控制列表ACL。

返回值:成功时返回相应的内部调用函数的返回值;失败时返回相应的错误码。

5.ext4_init_acl()

函数原型:int ext4_init_acl(handle_t *handle, struct inode *inode, struct inode *dir);

函数参数:handle表示用于日志处理的原子更新操作;inode表示指向新建文件的索引节点;dir表示文件所属目录的索引节点。

函数功能:初始化一个新文件的ACL。

返回值:成功时返回相应的内部调用函数的返回值;失败时返回相应的错误码。

6.ext4_acl_chmod()

函数原型:int ext4_acl_chmod(structinode *inode);

函数参数:inode表示待设置的目标索引节点。

函数功能:在调用chmod命令修改文件的权限时,根据指定的权限来修改目标文件中用于访问控制的ACL。

返回值:成功时返回0;失败时返回相应的错误码。




声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部