首页
/ util-linux中more命令的安全模式增强方案

util-linux中more命令的安全模式增强方案

2025-06-28 17:00:53作者:吴年前Myrtle

在Unix/Linux系统中,分页器(pager)是日常使用频率极高的工具之一,而util-linux项目中的more命令作为基础分页工具被广泛部署在各种系统中。近期社区发现了一个潜在的安全隐患:当特权程序使用more作为分页器时,普通用户可能利用其功能实现权限提升。

问题背景

more命令传统上提供了两个关键功能:

  1. 通过"!"命令执行shell命令
  2. 通过"v"命令启动编辑器

当某些以root权限运行的程序(如网络管理工具nmcli)使用more作为分页器时,普通用户可以利用这些功能执行任意命令,造成权限提升风险。这一问题与之前less命令发现的安全隐患类似,后者通过引入LESSSECURE环境变量解决了该问题。

技术分析

系统组件systemd已经对这一问题做出了响应,在其代码中实现了分页器的安全检测机制:

  1. 当检测到有效用户ID(EUID)与会话所有者不匹配时
  2. 自动启用安全模式(LESSSECURE=1)
  3. 仅允许使用已知支持安全模式的分页器(目前仅less)

然而,大量其他系统工具并未实现类似的保护机制,当它们回退使用more命令时,仍然存在安全风险。考虑到util-linux在几乎所有Linux发行版中都预装,增强more的安全特性显得尤为重要。

解决方案

util-linux项目应当为more命令引入类似的安全模式机制,具体实现可考虑:

  1. 新增MORESECURE环境变量,当其值为1时:

    • 禁用"!"命令的shell执行功能
    • 禁用"v"命令的编辑器启动功能
  2. 安全模式的自动触发逻辑:

    • 当EUID不等于会话所有者UID时自动启用
    • 与现有系统安全策略保持一致
  3. 向后兼容性考虑:

    • 不影响现有使用场景
    • 仅在有明确安全需求时激活限制

实施建议

从技术实现角度,建议采用分层设计:

  1. 环境变量检测层:优先检查MORESECURE,其次考虑兼容PAGERSECURE

  2. 权限检测层:实现类似systemd的UID比对逻辑

  3. 功能限制层:在安全模式下禁用特定快捷键和命令

  4. 用户提示层:当功能被禁用时给出明确提示

这种增强不仅能够提升系统安全性,还能促使更多应用程序放心使用more作为分页器,减少对第三方分页工具的依赖。

未来展望

长期来看,Linux社区应当考虑建立统一的分页器安全标准,包括:

  1. 标准化的安全模式环境变量命名
  2. 统一的安全检测接口
  3. 分页器功能限制的级别定义
  4. 各发行版的安全策略集成

这将有助于构建更加健壮的系统安全生态,从基础工具层面减少潜在的攻击面。

登录后查看全文
热门项目推荐
相关项目推荐