写点什么

金仓数据库 KingbaseES 的 rm-protect 机制:守护数据安全的可靠防线

作者:金仓技术
  • 2025-04-30
    四川
  • 本文字数:2203 字

    阅读完需:约 7 分钟

金仓数据库 KingbaseES 的 rm-protect 机制:守护数据安全的可靠防线

在数据库管理的复杂场景中,操作人员因误操作删除重要文件或文件夹的情况时有发生,这可能导致整个数据库系统陷入严重危机,造成数据丢失、业务中断等灾难性后果。为有效解决这一问题,金仓数据库 KingbaseES 推出了 rm-protect 机制,为数据库核心文件和文件夹提供了坚实的防护屏障,极大降低了误删风险。

一、rm-protect 工具构成​

rm-protect 机制由三个关键文件组成,它们均位于 KingbaseES 的 bin/目录下,各自承担着不可或缺的功能:​

  • install-rm-protect.sh:该脚本文件负责将 rm-protect 工具安装到系统的相关配置文件中,完成工具与系统环境的整合,为后续功能的实现奠定基础。​

  • sys_rm:它是具有强制确认功能的删除文件命令。当使用此命令删除文件或文件夹时,系统会要求用户进行明确确认,避免因疏忽或误操作导致文件被删除。​

  • sys_protect:这是用于设置对特定文件或文件夹保护的工具命令。通过该命令,用户可以为重要数据添加保护措施,使其在面临删除操作时得到额外的安全验证。

二、安装 rm-protect 工具​

安装 rm-protect 工具需要严格遵循特定步骤,且必须使用 root 用户进行操作,以确保具备足够的权限完成安装过程:​

cd <KingbaseES>/bin/./install-rm-protect.sh
复制代码


需要注意的是,该安装命令只需执行一次即可完成安装。重复执行虽然不会对系统造成伤害性影响,但也不会产生额外效果。

此外,删除保护功能将在执行安装步骤后,于重新登录系统的 session 或进程中生效。为确保功能正常运行,强烈建议在安装后重启主机。

三、设置文件或文件夹保护​

通过 sys_protect 命令,用户可以针对需要保护的文件或文件夹单独设置保护措施。在设置过程中,系统会要求用户输入一个问题和对应的回答,该问答将作为删除操作时的验证依据。

具体操作示例如下:

./sys_protect  /path/to/some_vip_fileQuestion for /path/to/some_vip_file sure to delete ?Answer: YES
复制代码


值得注意的是,个别操作系统可能不支持相对路径设置保护,为确保保护功能的有效性,建议用户使用全路径文件名进行设置。

四、rm-protect 使用指南​

当对已设置保护的文件或文件夹执行删除操作时,rm-protect 机制将发挥作用,通过问答验证流程确保删除操作的准确性。

例如,执行删除命令 rm -rf ./data/时,系统会进行如下交互:

rm -rf ./data//home/data: sure to delete ?Answer: wrongWrong answer! /home/data will not be removedThe correct answer is stored in /home/.data.rm-protection

复制代码


若回答错误,系统将终止删除操作,保护目标文件或文件夹不被删除,并提示正确答案的存储位置。只有当用户正确回答保护问题时,删除操作才会继续执行:

rm -rf ./data//home/data: sure to delete ?Answer: right 
复制代码


五、移除 rm-protect 工具​

若用户需要停用 rm-protect 功能,可按照以下步骤操作,将 rm 命令还原为系统原生命令:​

1. 使用 root 用户执行以下命令,删除系统配置文件中的相关脚本:​

/bin/rm /etc/profile.d/rm_protect.sh
复制代码


2. 分别打开/etc/bashrc 和/etc/bash.bashrc 文件,删除其中包含 alias rm 的行。这一步是为了取消对系统 rm 命令的别名设置,恢复其原始功能。​

3. 完成上述操作后,建议清空相关配置文件残留的冗余信息,然后重启主机。通过重启,系统将重新加载配置,彻底完成 rm-protect 功能的卸载(暂停)。​

需要特别强调的是,移除操作仅停用功能,sys_protect 和 sys_rm 二进制文件仍会保留在系统中。此时,请勿再使用 sys_protect 设置保护,且之前已设置删除保护的文件将不再受到保护。


六、使用须知​

在使用 rm-protect 机制时,还需关注以下特殊情况:​

  • 支持对文件夹的保护

    但是不自动覆盖文件夹内部的子文件夹和文件,仅在使用 rm -rf <dir_name> 命令时,保护才有效。使用 rmdir 命令删除文件时,保护无效。

  • 建议卸载数据库管理软件前,先移除 rm 保护工具

    直接卸载数据库管理软件后会导致 kingbase/bin 目录下的 sys_rm 被删除。此后再执行 rm 操作,将提示 sys_rm 不存在。

  • 删除命令的原始选项导致失败

    假设存在文件夹 dir1 ,并且已通过 sys_protect dir1 为其设置了问答保护。执行 rm dir1 删除操作会触发保护问题,答对则清除该文件夹的保护标签,但不能直接删除该文件夹,需要再次执行 rm -r dir1 进行删除。

    注意:再次执行 rm -r dir1 操作时,由于 dir1 文件夹的保护标签已被清除,系统将不会进行保护校验,请谨慎操作。

  • mv 操作将导致文件保护失效

    防误删保护生效判定是基于文件进行防误删保护配置时输入的全路径名,所以 mv 操作会如下效果:

    文件 A 进行 mv 操作后变为文件 A1,移动后的文件 A1 不被保护。

    文件 A 进行 mv 操作后,再次在原路径创建同名文件 A,同名文件 A 继承原有的保护配置。

  • 同时删除多个文件时的行为

    执行 rm -rf /abc/* 命令同时删除多个文件,如果其中部分文件未受保护(如/abc/a)、部分文件受到保护(如/abc/b),则会产生如下场景:

    提示是否删除 b,如果执行 Ctrl+C ,则操作取消, 文件 a 和 b 都保留。

    提示是否删除 b,如果错误回答保护问题,则操作退出, 文件 a 被删除、b 保留。

    提示是否删除 b,如果正确回答保护问题,则操作继续, 文件 a 和 b 都被删除。


rm-protect 机制为金仓数据库 KingbaseES 的数据安全提供了有力保障。通过合理运用该机制,用户能够有效避免因误删操作导致的数据损失,确保数据库系统稳定、可靠地运行。

在实际使用过程中,用户应严格按照操作指南进行安装、设置和使用,并充分了解相关注意事项,以发挥该机制的最大效能 。

用户头像

金仓技术

关注

数据库平替用金仓 2025-03-24 加入

还未添加个人简介

评论

发布
暂无评论
金仓数据库 KingbaseES 的 rm-protect 机制:守护数据安全的可靠防线_KingBase_金仓技术_InfoQ写作社区