重磅升级✨ AI智审招投标风控系统|OCR、发票真假、签章识别三大独立功能全新上线
2026/5/14 16:49:08
!这是关于 Ceph 用户权限管理的非常重要且实用的内容。让我为你详细讲解:
# 管理员用户(危险!)ceph auth get-or-create client.admin mon'allow *'osd'allow *'mgr'allow *'# 权限:可以执行任何操作,包括删除整个集群!# 专用用户(安全!)ceph auth get-or-create client.rbd_user mon'profile rbd'osd'profile rbd pool=mypool'# 权限:只能操作特定存储池的 RBD 功能ceph auth get-or-create client.{用户名}\mon'权限描述'\osd'权限描述'\mgr'权限描述'# 常用的 mon 权限配置mon'allow r'# 只读权限mon'allow rw'# 读写权限mon'profile rbd'# RBD 专用权限(推荐)# 基本格式osd'profile {权限类型} pool={池名}'# 权限类型选项:profile rbd# RBD 完整权限profile rbd-read-only# RBD 只读权限profile rbd-read-write# RBD 读写权限# RBD 相关的 manager 权限mgr'profile rbd'# RBD 管理权限# 创建只能操作 rbdpool 的 RBD 用户ceph auth get-or-create client.rbd_user\mon'profile rbd'\osd'profile rbd pool=rbdpool'\mgr'profile rbd'# 用户 qemu 对 vms 池有读写权限,对 images 池有只读权限ceph auth get-or-create client.qemu\mon'profile rbd'\osd'profile rbd pool=vms, profile rbd-read-only pool=images'\mgr'profile rbd pool=images'# 只能查看 RBD 信息,不能修改ceph auth get-or-create client.monitor\mon'profile rbd'\osd'profile rbd-read-only pool=rbdpool'\mgr'profile rbd'#!/bin/bashUSER_NAME="myrbduser"POOL_NAME="rbdpool"echo"=== 创建 RBD 专用用户 ==="# 创建用户并保存keyringceph auth get-or-create client.$USER_NAME\mon'profile rbd'\osd'profile rbd pool='$POOL_NAME\mgr'profile rbd'>/etc/ceph/ceph.client.$USER_NAME.keyringecho"用户创建完成"# 使用新用户测试权限ceph --user$USER_NAME-s# 应该能查看集群状态ceph --user$USER_NAMEosd poolls# 应该能查看存储池rbd --user$USER_NAMEls--pool$POOL_NAME# 应该能操作 RBD# 测试越权操作(应该失败)ceph --user$USER_NAMEosd pool create test_pool88# 应该被拒绝# 在客户端机器上配置# 将keyring文件复制到客户端scp/etc/ceph/ceph.client.$USER_NAME.keyring client-machine:/etc/ceph/# 在客户端使用指定用户rbd map --pool$POOL_NAMEmyimage --user$USER_NAME# 查看所有用户ceph authls# 查看特定用户的权限详情ceph auth get client.$USER_NAME# 测试用户具体能执行哪些命令ceph --user$USER_NAMEosd lspools# 应该成功ceph --user$USER_NAMEosd pool delete rbdpool rbdpool --yes-i-really-really-mean-it# 应该失败#!/bin/bash# 测试用户权限边界USER="myrbduser"POOL="rbdpool"echo"=== 权限测试 ==="# 1. 应该成功的操作echo"测试允许的操作:"ceph --user$USER-s>/dev/null2>&1&&echo"✓ 查看集群状态"rbd --user$USERls--pool$POOL>/dev/null2>&1&&echo"✓ 查看 RBD 镜像"# 2. 应该失败的操作echo"测试禁止的操作:"ceph --user$USERosd pool create test_pool88>/dev/null2>&1||echo"✓ 禁止创建存储池"ceph --user$USERosd pool delete$POOL$POOL--yes-i-really-really-mean-it>/dev/null2>&1||echo"✓ 禁止删除存储池"# 虚拟机用户(只能操作 vm_pool)ceph auth get-or-create client.vm_user mon'profile rbd'osd'profile rbd pool=vm_pool'mgr'profile rbd'# 备份用户(只读权限)ceph auth get-or-create client.backup mon'profile rbd'osd'profile rbd-read-only pool=vm_pool'mgr'profile rbd'# 监控用户(只读所有池)ceph auth get-or-create client.monitor mon'profile rbd'osd'profile rbd-read-only'mgr'profile rbd'# 正确的文件权限设置chmod600/etc/ceph/ceph.client.*.keyringchownceph:ceph /etc/ceph/ceph.client.*.keyring# 密钥备份cp/etc/ceph/ceph.client.myrbduser.keyring /backup/# 错误:权限不足rbd: error opening pool rbdpool:(13)Permission denied# 解决:检查用户权限ceph auth get client.myrbduser# 错误:keyring文件找不到rbd: couldn't connect to cluster:(13)Permission denied# 解决:指定keyring文件rbd --user myrbduser --keyring /etc/ceph/ceph.client.myrbduser.keyringls这个机制的核心价值:
对于你的 RBD 测试环境,建议创建一个专用用户而不是一直使用admin用户!