• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

ONEStor对象存储 怎么判断用户信息

1天前提问
  • 0关注
  • 0收藏,39浏览
粉丝:0人 关注:0人

问题描述:

ONEStor对象存储命令行下怎么判断哪些是租户管理员、租户、对象用户,通过什么命令查询。解答的详细点,谢谢

4 个回答
粉丝:8人 关注:0人

在 ONEStor 对象存储的命令行中,租户管理员、租户、对象用户这三类身份并不是直接通过某一条命令就能一目了然的,而是需要通过组合查询来区分。它们的核心关系是:租户是资源的集合,租户管理员管理租户,对象用户通过 Access Key 访问租户内的对象存储

下面我会按身份类型,分别说明如何通过命令来识别和区分。



 一、概念速览

在深入命令前,先明确这三个概念:

  • 租户 (Tenant):资源隔离的单位,类似于一个项目或部门。它本身不直接用于登录,而是作为容器,容纳该租户下的对象存储资源(桶、对象等)。

  • 租户管理员 (Tenant Admin):拥有该租户下最高管理权限的账户,可以创建/删除桶、管理用户、查看所有资源。

  • 对象用户 (Object User):拥有 Access Key(访问密钥)的普通用户,只能访问自己被授权的桶。通常用于对接 S3 客户端(如 s3cmd)。



 二、查看租户与租户管理员

在命令行中,租户本身没有独立的查询命令,但它和“租户管理员”紧密相关。一个租户管理员账户的存在,就意味着一个租户的存在。

1. 登录 Handy 后台

这是最直观的查看方式。租户管理员信息会记录在 ONEStor 的 Handy 运维后台中。你需要先通过 SSH 登录到 ONEStor 集群的任意节点,然后执行 handy 命令进入 Handy 运维控制台。

# 登录集群节点后,进入 handy 命令行
handy进入 Handy 后,可以使用其内置的命令来查看所有租户及其管理员信息。具体的命令可能因版本略有不同,但通常可以尝试:
# 查看所有租户列表(Handy 命令示例)
tenant list # 或查看租户详情,其中会包含租户管理员的信息 tenant show <租户名>说明handy 是 ONEStor 的统一运维命令行入口,大部分管理操作都通过它完成。

2. 通过系统日志或配置文件定位

如果无法进入 Handy,或者想更底层地确认,可以尝试查看系统的数据库或配置文件。不过这种方式较为复杂,通常不用于日常运维,仅作备选。



 三、查看对象用户(Access Key)

对象用户的核心标识是 Access Key。所有对象用户(包括租户管理员用于对象存储操作的密钥)都是通过 Access Key 来体现的。ONEStor 提供了专门的命令来列出所有 Access Key。

核心命令

applications objects access_keys list
1. 列出所有对象用户

这个命令会列出系统中所有已创建的 Access Key,每个 Access Key 就对应一个对象用户-2

applications objects access_keys list
2. 区分租户管理员和普通对象用户

创建 Access Key 时,可以通过 --role 参数指定其权限类型:Admin 或 Regular

  • --role Admin:此 Access Key 具备管理员权限(通常就是租户管理员用于对象存储操作的密钥)。

  • --role Regular:此 Access Key 是普通对象用户,只有读写权限。

因此,要判断一个对象用户是不是管理员,可以在列出 Access Key 时查看其角色信息。

# 查看所有 Access Key,并显示其 Secret Key(如果需要验证)
applications objects access_keys list --showSecretKeys输出示例
Access Key Role Secret Key
s1:admin-user Admin ********** s1:regular-user Regular **********从输出中可以明确看到,前缀为 s1:admin-user 的 Access Key 其角色是 Admin,这通常就是租户管理员用于对象存储操作的凭证。而角色为 Regular 的则是普通的对象用户

3. 查看特定对象用户的详细信息

如果想知道某个对象用户(Access Key)的详细信息,可以指定 Access Key 名称进行查询。

applications objects access_keys list --accessKey s1:admin-user --showSecretKeys

 四、查看对象存储与用户(Access Key)的关联

一个对象存储(Object Store)可以授权给多个对象用户(Access Key)访问。通过查看对象存储的授权列表,你可以知道哪些用户能访问这个存储资源。

1. 查看所有对象存储

applications objects stores list
这个命令会列出所有已创建的对象存储(OFS)。

2. 查看特定对象存储的授权用户

# 查看特定应用下、特定卷上的对象存储详情,其中会包含已授权的 Access Keys
applications objects stores list --application <应用名> --volume <卷名>输出中会包含 Access Keys 列表,列出了所有被授权访问该对象存储的用户


暂无评论

粉丝:2人 关注:9人

在ONEStor对象存储中,通过命令行判断用户角色和信息的核心命令是 `radosgw-admin`。

1. 查询所有用户列表:
radosgw-admin user list
此命令列出所有用户的用户ID。

2. 获取指定用户的详细信息(关键步骤):
radosgw-admin user info --uid=<用户ID>
在返回的JSON信息中,关注以下字段来判断用户类型:
租户管理员: `"tenant"` 字段值为其管理的租户名,且 `"system"` 字段值为 `"true"`。该用户拥有该租户的最高权限。
租户(子用户): `"tenant"` 字段值为所属租户名,`"subusers"` 数组下会列出其名下的子用户。租户本身是一个父用户。
对象用户(通常指子用户): 在父用户的 `"subusers"` 信息中列出。其身份由 `"uid"` 字段格式为 `<父用户ID>:<子用户名>` 体现,并通过 `"permissions"` 字段(如`"full-control"`, `"read"`, `"write"`, `"read-write"`)定义对存储桶和对象的访问权限。

3. 直接查询租户列表:
radosgw-admin tenant list

总结判断逻辑:
1. 先获取用户完整信息。
2. 看 `"system": true` 且关联特定 `"tenant"`,则为该租户的管理员。
3. 看 `"tenant"` 字段和 `"subusers"` 列表,存在子用户的即为租户(父用户)。
4. 用户ID包含冒号(`:`)格式的,通常是隶属于某个租户的子用户(对象用户)。

注意: 操作前请确保有相应的管理员权限,并对关键配置进行备份。

暂无评论

粉丝:98人 关注:11人

  1. 执行权限:需使用 root 或具有 ceph 管理权限的用户操作。
  2. 版本兼容性
    • 上述命令基于Ceph RadosGW(ONEStor底层架构),适用于ONEStor 3.0+版本。
    • 早期版本(如1.0/2.0)可能需通过Handy管理界面操作,命令行支持有限。
  3. 租户与用户关系
    • 租户管理员是特殊用户,需在创建时显式分配权限(如 --caps="tenants=*")。
    • 对象用户需关联到具体租户,无跨租户权限(除非通过桶策略授权)。

⚠️ 若环境为ONEStor 1.0/2.0,建议通过Handy界面操作(用户管理 > 租户管理),命令行功能可能受限。

暂无评论

粉丝:6人 关注:2人

H3C ONEStor 对象存储基于 Ceph RGW 实现,命令行管理核心工具是radosgw-admin。下面详细说明如何通过命令行区分租户管理员、租户、对象用户,并给出完整查询命令与判断依据。

一、先明确 ONEStor 对象存储的用户 / 租户概念

ONEStor 对象存储采用 ** 多租户(Tenant)** 架构,用户与租户的关系如下:
  1. 租户(Tenant):资源隔离的容器,每个租户有独立的用户、桶、配额与权限空间,标识格式为租户名$用户名(如tenant01$user01)。
  2. 租户管理员(Tenant Admin):租户内的最高权限用户,可管理该租户下所有用户、桶、权限与配额,通过 ** 系统标记(system: true)管理员权限(caps)** 标识。
  3. 对象用户(Object User):租户下的普通 S3 用户,仅能访问自身权限内的桶与对象,无租户管理权限。
  4. 系统管理员(System Admin):全局最高权限用户(如rgw-admin),可管理所有租户与用户,通常带system: true标记。

二、核心查询命令(radosgw-admin)

1. 列出所有用户(含租户隔离信息)

bash
运行
# 列出所有用户(含租户,格式:租户$用户) radosgw-admin user list # 示例输出(空租户为默认全局租户) ["rgw-admin", "tenant01$admin", "tenant01$user01", "tenant02$user02"]
  • $:默认全局租户(空租户)用户。
  • $$前为租户名$后为用户名

2. 查看单个用户详细信息(判断身份)

bash
运行
# 查看指定用户详情(全局用户) radosgw-admin user info --uid=rgw-admin # 查看租户下用户详情(必须带租户前缀) radosgw-admin user info --uid=tenant01$admin
关键判断字段(输出 JSON 核心项)
表格
字段含义租户管理员标识对象用户标识
user_id用户唯一 ID租户$admin(如tenant01$admin租户$普通用户名
system是否为系统 / 管理员用户true(必须)false或无此字段
caps权限集合"type": "tenant", "perm": "*"[](空)或仅业务权限
tenant所属租户租户名(如tenant01租户名(如tenant01
max_buckets最大桶数无限制(-1)或超大值有限制(如100
示例:租户管理员(tenant01$admin)输出
json
{ "user_id": "tenant01$admin", "display_name": "Tenant01 Admin", "tenant": "tenant01", "system": "true", "caps": [{"type": "tenant", "perm": "*"}], "max_buckets": -1, "keys": [...] }
示例:对象用户(tenant01$user01)输出
json
{ "user_id": "tenant01$user01", "display_name": "User01", "tenant": "tenant01", "system": "false", "caps": [], "max_buckets": 100, "keys": [...] }

3. 批量筛选租户管理员 / 对象用户

bash
运行
# 筛选所有租户管理员(含system: true) radosgw-admin user list | xargs -I {} radosgw-admin user info --uid={} | jq 'select(.system == "true") | .user_id' # 筛选所有对象用户(非管理员) radosgw-admin user list | xargs -I {} radosgw-admin user info --uid={} | jq 'select(.system != "true" or .system == null) | .user_id' # 筛选指定租户(tenant01)下所有用户 radosgw-admin user list | grep "tenant01$"

4. 列出所有租户(通过用户反查)

ONEStor 无直接 “列出租户” 命令,需从用户 ID 中提取租户名:
bash
运行
# 提取所有租户名(去重) radosgw-admin user list | grep "\$" | awk -F '$' '{print $1}' | sort | uniq # 示例输出 ["tenant01", "tenant02"]

5. 查看租户配额与资源(验证租户存在)

bash
运行
# 查看租户全局配额(需租户管理员权限) radosgw-admin quota get --tenant=tenant01 --quota-scope=tenant # 查看租户下所有桶 radosgw-admin bucket list --tenant=tenant01

三、快速判断方法(三步法)

  1. 看用户 ID 格式:含$→租户内用户;无$→全局用户。
  2. 看 system 字段system: true租户 / 系统管理员false/ 无→对象用户
  3. 看 caps 字段:含tenant: *租户管理员;空→对象用户

四、常见场景命令汇总

表格
场景命令
列出所有用户radosgw-admin user list
查看用户详情radosgw-admin user info --uid=用户ID
筛选所有管理员`radosgw-admin user listxargs -I {} radosgw-admin user info --uid={}jq 'select(.system == "true").user_id'`
筛选指定租户用户`radosgw-admin user listgrep "租户名 $"`
提取所有租户`radosgw-admin user listgrep "$"awk -F '$' '{print $1}'sortuniq`
查看租户配额radosgw-admin quota get --tenant=租户名 --quota-scope=tenant

五、注意事项

  1. 执行命令需在ONEStor 对象网关节点,且有radosgw-admin 权限(通常为 root)。
  2. 租户用户必须用租户$用户格式查询,直接用用户名会提示 “用户不存在”。
  3. system: true是 ONEStor 中租户管理员的核心标识,普通对象用户无此标记。
  4. 若对接 Keystone 认证,租户与用户信息同步自 Keystone,需结合openstack user/tenant list命令交叉验证。

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明