在 ONEStor 对象存储的命令行中,租户管理员、租户、对象用户这三类身份并不是直接通过某一条命令就能一目了然的,而是需要通过组合查询来区分。它们的核心关系是:租户是资源的集合,租户管理员管理租户,对象用户通过 Access Key 访问租户内的对象存储。
下面我会按身份类型,分别说明如何通过命令来识别和区分。
在深入命令前,先明确这三个概念:
租户 (Tenant):资源隔离的单位,类似于一个项目或部门。它本身不直接用于登录,而是作为容器,容纳该租户下的对象存储资源(桶、对象等)。
租户管理员 (Tenant Admin):拥有该租户下最高管理权限的账户,可以创建/删除桶、管理用户、查看所有资源。
对象用户 (Object User):拥有 Access Key(访问密钥)的普通用户,只能访问自己被授权的桶。通常用于对接 S3 客户端(如 s3cmd)。
在命令行中,租户本身没有独立的查询命令,但它和“租户管理员”紧密相关。一个租户管理员账户的存在,就意味着一个租户的存在。
1. 登录 Handy 后台
这是最直观的查看方式。租户管理员信息会记录在 ONEStor 的 Handy 运维后台中。你需要先通过 SSH 登录到 ONEStor 集群的任意节点,然后执行 handy 命令进入 Handy 运维控制台。
handy 是 ONEStor 的统一运维命令行入口,大部分管理操作都通过它完成。2. 通过系统日志或配置文件定位
如果无法进入 Handy,或者想更底层地确认,可以尝试查看系统的数据库或配置文件。不过这种方式较为复杂,通常不用于日常运维,仅作备选。
对象用户的核心标识是 Access Key。所有对象用户(包括租户管理员用于对象存储操作的密钥)都是通过 Access Key 来体现的。ONEStor 提供了专门的命令来列出所有 Access Key。
核心命令:
这个命令会列出系统中所有已创建的 Access Key,每个 Access Key 就对应一个对象用户-2。
创建 Access Key 时,可以通过 --role 参数指定其权限类型:Admin 或 Regular。
--role Admin:此 Access Key 具备管理员权限(通常就是租户管理员用于对象存储操作的密钥)。
--role Regular:此 Access Key 是普通对象用户,只有读写权限。
因此,要判断一个对象用户是不是管理员,可以在列出 Access Key 时查看其角色信息。
s1:admin-user 的 Access Key 其角色是 Admin,这通常就是租户管理员用于对象存储操作的凭证。而角色为 Regular 的则是普通的对象用户。3. 查看特定对象用户的详细信息
如果想知道某个对象用户(Access Key)的详细信息,可以指定 Access Key 名称进行查询。
一个对象存储(Object Store)可以授权给多个对象用户(Access Key)访问。通过查看对象存储的授权列表,你可以知道哪些用户能访问这个存储资源。
1. 查看所有对象存储
2. 查看特定对象存储的授权用户
Access Keys 列表,列出了所有被授权访问该对象存储的用户。
暂无评论
租户名$用户名(如tenant01$user01)。rgw-admin),可管理所有租户与用户,通常带system: true标记。# 列出所有用户(含租户,格式:租户$用户)
radosgw-admin user list
# 示例输出(空租户为默认全局租户)
["rgw-admin", "tenant01$admin", "tenant01$user01", "tenant02$user02"]
$:默认全局租户(空租户)用户。$:$前为租户名,$后为用户名。# 查看指定用户详情(全局用户)
radosgw-admin user info --uid=rgw-admin
# 查看租户下用户详情(必须带租户前缀)
radosgw-admin user info --uid=tenant01$admin
| 字段 | 含义 | 租户管理员标识 | 对象用户标识 |
|---|---|---|---|
user_id | 用户唯一 ID | 租户$admin(如tenant01$admin) | 租户$普通用户名 |
system | 是否为系统 / 管理员用户 | true(必须) | false或无此字段 |
caps | 权限集合 | 含"type": "tenant", "perm": "*" | [](空)或仅业务权限 |
tenant | 所属租户 | 租户名(如tenant01) | 租户名(如tenant01) |
max_buckets | 最大桶数 | 无限制(-1)或超大值 | 有限制(如100) |
{
"user_id": "tenant01$admin",
"display_name": "Tenant01 Admin",
"tenant": "tenant01",
"system": "true",
"caps": [{"type": "tenant", "perm": "*"}],
"max_buckets": -1,
"keys": [...]
}
{
"user_id": "tenant01$user01",
"display_name": "User01",
"tenant": "tenant01",
"system": "false",
"caps": [],
"max_buckets": 100,
"keys": [...]
}
# 筛选所有租户管理员(含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$"
# 提取所有租户名(去重)
radosgw-admin user list | grep "\$" | awk -F '$' '{print $1}' | sort | uniq
# 示例输出
["tenant01", "tenant02"]
# 查看租户全局配额(需租户管理员权限)
radosgw-admin quota get --tenant=tenant01 --quota-scope=tenant
# 查看租户下所有桶
radosgw-admin bucket list --tenant=tenant01
$→租户内用户;无$→全局用户。system: true→租户 / 系统管理员;false/ 无→对象用户。tenant: *→租户管理员;空→对象用户。| 场景 | 命令 | ||||
|---|---|---|---|---|---|
| 列出所有用户 | radosgw-admin user list | ||||
| 查看用户详情 | radosgw-admin user info --uid=用户ID | ||||
| 筛选所有管理员 | `radosgw-admin user list | xargs -I {} radosgw-admin user info --uid={} | jq 'select(.system == "true") | .user_id'` | |
| 筛选指定租户用户 | `radosgw-admin user list | grep "租户名 $"` | |||
| 提取所有租户 | `radosgw-admin user list | grep "$" | awk -F '$' '{print $1}' | sort | uniq` |
| 查看租户配额 | radosgw-admin quota get --tenant=租户名 --quota-scope=tenant |
租户$用户格式查询,直接用用户名会提示 “用户不存在”。system: true是 ONEStor 中租户管理员的核心标识,普通对象用户无此标记。openstack user/tenant list命令交叉验证。暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论