背景
为了提升内部各组件安全防护水平,防止恶意攻击。沙箱权限会进一步消减。去除权限后,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
interface:bmc.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”]