限制Root权限,Linux内核将引入安全锁定功能

点击蓝色字体“肉眼品世界”,关注公众号

深度价值体系传递

来源:开源中国

经过多年以来的无数次审查、讨论和代码重写,Linus Torvalds 通过了一项 Linux 内核新的安全功能,它被称为“锁定”(lockdown)。

这项新功能将作为 LSM(Linux Security Module,Linux 安全模块)包含在即将发布的 Linux kernel 5.4 中。由于存在破坏现有系统的风险,因此该功能是可选的,并非默认开启。

这一新的锁定功能主要是为了防止 root 帐户篡改内核代码,从而在用户态进程和代码之间划清界限。启用该功能后,即便是 root 帐户也无法访问某些内核功能,从而保护操作系统免受受损的 root 帐户影响。

Linus Torvalds 表示,启用锁定模块后,各种内核功能都会受到限制。其中包括对内核功能的访问限制;对 /dev/mem 的读写操作的阻止;对 CPU MSR 访问的限制;以及防止系统进入睡眠状态等等。

锁定功能支持两种不同模式,可用于激活不同级别的限制。“完整性”(integrity)模式将禁止用户修改正在运行的内核功能。另一种“机密性”(confidentiality)模式则会禁止用户从内核中提取机密信息。

640?wx_fmt=png

内核锁定功能的研究始于 2010 年代初期,由现在的 Google 工程师 Matthew Garrett 牵头。该功能背后的想法是创建一种安全机制,以防止具有特权的用户(甚至是“root”帐户)篡改内核的代码。

在那个时候,即使 Linux 系统采用了安全启动机制,恶意软件仍然可以通过滥用具有特殊提升特权的驱动程序和 root 帐户等来篡改内核代码。多年以来,许多安全专家一直在要求 Linux 内核支持一种更有效的方式来限制 root 帐户,并提高内核安全性。

最初提出该功能时,Linus Torvalds 本人是最大的反对者之一,他对此提出了不少批评。结果,许多 Linux 发行版开发了自己的 Linux 内核补丁,这些补丁在主线内核之上都添加了锁定功能。直到 2018 年,支持派和反对派才逐渐达成中间立场,关于锁定功能的工作也终于在今年取得了新的进展。

新功能获得批准后,目前也在 Linux 和网络安全社区受到了广泛欢迎。

### 解决 Linux 中重置 root 密码时出现的 `not in sudoers` 文件错误 当尝试通过普通用户权限修改或访问敏感操作(如重置 root 用户密码)时,如果该用户未被授予管理员权限,则会收到类似于 `"xxx is not in the sudoers file. This incident will be reported"` 的提示。以下是针对此问题的具体解决方案。 #### 方法一:临时切换至 root 账户 可以通过 `su -` 命令切换到 root 用户账户来完成密码重置工作。这种方法无需依赖于当前用户的 `sudo` 权限[^5]。 ```bash su - ``` 输入 root 用户的密码后成功切换为超级用户角色,随后可以执行以下命令重置任意用户的密码: ```bash passwd username ``` #### 方法二:配置 Sudoers 文件以赋予定用户管理权限 对于希望继续使用现有普通用户身份并通过 `sudo` 执行权命令的情况,需调整 `/etc/sudoers` 配置文件的内容以便允许指定用户拥有必要的权限[^3]: 1. **增加写权限给 /etc/sudoers** 使用 chmod 修改其属性使得能够对其进行编辑: ```bash chmod u+w /etc/sudoers ``` 2. **编辑 sudoers 文件** 启动 vi 编辑器打开上述路径下的文档,在其中定位到默认定义部分即包含有 "root ALL=(ALL) ALL" 这样的条目位置处新增一行用于描述新授权对象的信息(假设目标用户名叫作 xxx): ```bash vi /etc/sudoers ``` 添加如下内容: ``` xxx ALL=(ALL) ALL ``` 3. **恢复原始只读状态并保存更改后的版本** 完成编辑之后记得重新锁定保护机制防止意外篡改: ```bash chmod u-w /etc/sudoers ``` 注意以上过程务必小心谨慎以引入语法错误造成整个系统的安全漏洞风险提升。 #### 方法三:利用单用户模式绕过验证流程 作为最后手段之一考虑采用引导进入单一维护模式的方式避开正常登录环节从而直接获取最高控制权来进行修复作业[^4]: - 重启计算机直到看到 GRUB 加载界面; - 选择合适的内核选项按下 'e' 键进行参数编辑; - 查找启动行(通常以 linux 或者 linux16 开头),在其结尾附加字符串 single 或 init=/bin/bash; - 按下 Ctrl + X 继续加载系统直至获得 shell 提示符; 此时已具备完全不受限制的操作能力可随意变更任何设定比如更新丢失掉的管理员口令等等... ### 总结 综上所述,面对因缺乏适当许可而导致无法顺利完成某些高级功能调用的情形之下,可以选择多种途径加以应对处理。无论是借助其他已经存在的高阶账号资源还是手动修正本地策略框架均能有效达成目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值