【已评审】资源协作接口新增安全代理方法用于创建目录

背景

为了提升内部各组件安全防护水平,防止恶意攻击。沙箱权限会进一步消减。去除权限后,account组件需要安全代理提供创建目录的功能,用来创建用户目录;

关联ISSUE

[需求]: 支持account高危权限消减-account-AtomGit | GitCode

整体方案

account组件需要安全代理提供创建目录的功能,用来创建每个用户的独立主目录(/data/trust/home/username)

评审点

interface:bmc.kepler.Managers.Security.File下新增方法Mkdir,用于创建目录。

详细描述

评审点1:新增安全代理方法:Mkdir,用于创建目录

资源path:/bmc/kepler/Managers/:Id/Security/File

资源interface:bmc.kepler.Managers.Security.File

变化类型:新增方法

应用场景:用于创建目录。

方法名称 变化类型 权限 请求签名 请求参数 响应签名 响应体 备注
Mkdir 新增方法 BasicSetting suuub DstDir(s):目标目录
DirMode(u):目录权限
Uid(u):目录属主
Gid(u):目录属组
Parents(b):是否按需创建父目录,当前仅支持取值false
NA NA 1. 目录不存在时,则根据参数创建目录;目录已存在时,若参数指定的属主和属组与当前实际属主和属组不一致,则返回错误ResourceAlreadyExists,若属主和属组一致,则返回成功

评审结论

同意新增安全代理方法:Mkdir,用于创建目录

path/bmc/kepler/Managers/:Id/Security/File

interfacebmc.kepler.Managers.Security.File

变化类型:新增方法

应用场景:用于创建目录
当前支持创建目录白名单路径:
DstDir取值范围:[“/dev/shm”, “/data/trust/home”]

方法名称 变化类型 权限 请求签名 请求参数 响应签名 响应体 备注
Mkdir 新增方法 BasicSetting suuub DstDir(s):目标目录
DirMode(u):目录权限
Uid(u):目录属主
Gid(u):目录属组
Parents(b):是否按需创建父目录,当前仅支持取值false
NA NA 目录不存在时,则根据参数创建目录;目录已存在时,若参数指定的属主和属组与当前实际属主和属组不一致,则返回错误ResourceAlreadyExists,若属主和属组一致,则返回成功

遗留问题

1、明确目录路径已经存在的情况下返回什么错误
结论:目录已存在的情况下,若uid/gid与目录实际权限不一致,返回错误ResourceAlreadyExists,若一致,则返回成功

2、描述清楚不支持创建多级目录, 明确返回什么错误
结论:当前不支持多级目录创建,接口层面预留支持创建父目录的扩展能力

3、补充路径白名单内容
结论:当前支持创建目录白名单路径:
DstDir取值范围:[“/dev/shm”, “/data/trust/home”]