LWN:禁用root帐号,跟rescue模式有冲突!

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析 把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。 阅读详情

关注了就能看到更多这么棒的文章哦~

Locked root and rescue mode

By Jake Edge
December 22, 2021
DeepL assisted translation
https://lwn.net/Articles/879272/

Fedora 是诸多 Linux 发行版中的一员。默认情况下它锁定了 root 账户,不给它密码也不让人用它登录。但是,Linux 传统上来说,有一个 "rescue mode (救援模式)" 会将系统启动到单用户模式,这就需要一个 root 密码了。像 Fedora 这种完全没有 root 密码的系统,这种情况当然无法提供出来了。Fedora 提议在这种情况下去掉要求输入密码的步骤,而直接进入 root shell。虽然这个建议估计不会成功,但它似乎已经引出了一些更好的根本解决这个问题的方法。

针对 Fedora 36 提出的一个提案是 "使救援模式在 locked root 下也能使用",这是由 Fedora 项目经理 Ben Cotton 在 12 月 6 日代表此功能的负责人(Michel Alexandre Salim, Neal Gompa, 和 David Duncan )来发布的。问题是,如果用户需要通过 single-user mode 来修复他们的系统,那么对于 root 账户被锁定的系统来说,"当前这种缺省用户体验"是很差的,他们会被提示要提供一个他们根本无法提供出来的密码,不得不求助于其他方式来启动这个出了问题的系统(比如使用光盘等其他启动方式)。另一个选择是用内核的 cmdline 选项(比如加上 "init=/sysroot/bin/bash")来启动,但这对用户来说也不是特别方便。

这个改动的核心是如果发现 root 密码无法访问或者 root 登录被禁用的话,就使用 sulogin 的 –force 选项,从而进入 single-user mode 时跳过密码输入的步骤。但是,正如 man 手册里面所说,这个选项应该只在 "你确信 console 在物理上受到保护,不会被非法访问到" 的情况下才可以使用。该提案认为,这一改动 "不会带来更多的安全风险",因为攻击者已经有了其他的绕过密码需求的手段(例如上面说的 init=),或者如果他们能直接触碰到这台机器,完全就可以破坏系统了。那些想为 single-user mode 强制要求使用密码的人,直接设置一个 root 密码就好了。

这个实现是基于 Fedora CoreOS 中的一个类似功能(patch 在 https://github.com/coreos/fedora-coreos-config/commit/eb74f2ea3e9b453902315539e4f327481162c4f8 )。默认情况下,Fedora 36 会安装一个 RPM 来改变 systemd 的配置,从而绕过密码需求。不想要采用这种策略的用户或 Fedora 变种则可以删除该 RPM 或者干脆不安装。

正如大家可以猜到的,这里所下的没有增加风险的结论引出了不同意见。Zbigniew Jędrzejewski-Szmek 说,至少有两种情况中,哪怕拥有物理访问权也不一定有能力破坏该系统:

如果数据是加密的,那么在解密之前,就算设置 init 也并不能达到攻击目的。第二种情况是管理员锁定了 kernel 的 cmdline 参数,而依靠正常的认证机制来保护系统。在这两种情况下,你的建议在系统已经运行起来之后配置好系统完整性检查来保护未加密的数据的情况下,创建了一种新的攻击路径。采用这个提案之后,任何可能会导致系统进入紧急模式的机制都会变成一个可能的攻击途径。

他说,正在解决的这个问题确实存在,但这个解决方案并不理想:

从本质上讲,你提出的行为是这么一个情况:"这里有问题有问题,所以让我们在没有认证的情况下就把一切都放开吧",这对调试和开发场景来说是好的建议,但对一个真正的生产系统来说,是不能接受的。

正确的解决方案是加强登录机制,以便在救援模式下也能使用现有的密码来进行认证。现在不可能做到这一点,这是一个需要修复的 bug。

他对未来的解决方法提出了一些建议,包括可能会将密码 hash(使用更强大的 yescrypt hashing algorithm)添加到 initial ramdisk(initrd)或启动时可访问到的其他地方(例如 EFI variable 等)。此外,可信任平台模块(TPM,Trusted Platform Module)也可以用起来,采用系统特定的方式对密码进行加密。

Richard W.M.Jones 提问说这个 threat model 以及跳过密码在现实中会造成什么问题:"从另一个角度看,我确实就遇到了所描述的问题,这个问题非常让人反感——它使得 rescue 模式在默认情况下就毫无用处了。" Jędrzejewski-Szmek 承认这个问题是 "让人不爽的真实存在的问题",但他指出,这个建议违反了我们管理系统访问权限的基本原则:

系统的安装有很多很多种各不相同的方式,但一般的原则是,[一旦]系统启动了,你就需要有效的密码才能登录。因此,在系统运行起来之前对系统的保护也就是在保护静止的数据,这可以通过许多不同的方式进行,并且是你的责任,而在系统运行起来之后,你知道正常的系统机制会起效果。在这个提案中就打破了这个承诺。

他举的一个例子是一个 kiosk-installed system (安装在信息亭等位置的系统),这种情况下的用户都可以使用到键盘,"如果你能影响系统,使其不能正常启动,仅仅也许是创造一个足够长的 delay 就行,就足以获得不受限制的访问权限了。"

Vit Ondruch 询问说是否有什么现在正在进行的工作就是针对这里所说的解决方案的。Jędrzejewski-Szmek 说,最近版本的 systemd 已经支持了一些底层机制(也就是 encrypted-secret 存储功能),但仍然缺少上层机制的实现:

但我们还缺少上层的部分,也就是如何去实际使用以及更新密码。我甚至没有提到这个,因为我们还没有针对一个完整的流程。我认为有必要从头开始写一些 pam module 以及 authentication helper。

Lennart Poettering 说,Fedora(和其他 Unix 系统)上的 "wheel" group 就是用来包含所有带有管理权限的用户的,所以应该可以使用该组中任意一个用户的密码就可以了。他也赞同确实有不少工作要做,比如收集这些密码、用 TPM 加密,并将其存储在启动时可以到访问的地方,这一切还有很多工作要做,但其最终得到的好处将远远不局限于仅仅启动到 single-user mode:

有了这样的机制,我们就有了很好的语义:如果一个用户被指定为拥有管理权限,那么就足以让他拥有能够登录到 root 账户的能力,不需要再手工进行一些配置了,而且它会对整个操作系统运行期间都有效:从 initrd 到常规系统,再到 sudo 场景,都可以生效。

Chris Murphy 不太希望将解决方案与 TPM 联系起来,因为有些系统没有这个设备,或者某些内核不包含对其的支持。Poettering 说,默认使用 TPM 是合理的做法,哪怕我们确实需要 "为条件不具备的那些环境使用更合理的后备方案"。

但 Chris Adams 更加喜欢最初的提议。管理员如果想进一步确保他们的系统是 lock 的状态,可以很简单地删除 RPM 或设置一个 root 密码就可以了。"对系统的缺省配置要进一步设置 lock down 功能的话,需要修改好几处地方,所以我不认为把这个步骤加进来有什么问题"。Jędrzejewski-Szmek 认为这是一种退步:

我也不认为我们应该假设管理员会做一系列的 "加固步骤(hardening steps)"。这就是我们在 90 年代的情况:你会安装一个原始发行版,然后按照一些基本步骤进行逐项检查,让系统事情变得更安全。我们还是别再回到那个时代的做法了。

Murphy 也有些担心 Fedora CoreOS 的改动方案。如果跳过密码检查的想法是不合理的,那么 "是否应该把 CoreOS 中的改动 revert 掉?" Jędrzejewski-Szmek 说,这会使得 CoreOS image 不再适合通用场景:"也许在一部分情况下是可以这么做的,也就是只有当你是 host 上的管理员时才有可能进行 '物理'访问的环境下。"

虽然功能负责人并没有过多地参与讨论,但 Salid 显然在跟踪这些讨论。他说,他倾向于不急于为 Fedora 36 提供完整的解决方案,而是将其推迟到 Fedora 37。他也认为关于 CoreOS 应该做些什么这是一个好问题。除此之外,使用 wheel group 来限定哪些密码是有效的,以及是否需要让该功依赖 TPM,这些问题都需要逐步确定。

他还在思考是否可以用一些 recovery password,这个问题在讨论中中也被提出来,作为需要让安装在另一个系统(也就是会有一个不同的 TPM)的磁盘也能工作的手段。这个问题被认为是另一个独立的问题了。此外,Björn Persson 认为 recovery password 其实更适合于那些使用了其他认证机制(如硬件令牌)的情况,而且可能会丢失或被破坏:

只要用户通常使用自己的 passphrase 来登录,那么我认为没有必要为救援模式设置另一个专门的口令。Root 或 wheel 用户的常用口令应该都是可以的。

为了解决 Fedora 36 的燃眉之急,Salim 建议说如果没有设置 root 密码的话就把救援模式从启动选项中移除。此外,如果有人试图在这种情况下用 cmdline 来进入救援模式的话,"应该显示一个错误,而不是提示要求输入一个根本就不存在的密码"。Persson 认为这些听起来都很合理。Fedora 工程指导委员会原定在 12 月 20 日的会议上讨论这个提案,但由于没有达到法定人数而取消了,估计会在 1 月 3 日这个下一次会议上重新安排。

总的来说,使用 wheel group 密码的想法似乎获得了相当多的支持,另一个得到较多赞同的意见是不要创建新的能够不用认证就获取 root 权限。我们的系统已经足够复杂了,而且是采用了许多不同的方式和运行环境,如果开放了新的不经认证就获取 root 的做法的话总是会引起一些人的异议。但另一方面,如果提示要求输入用户根本无法提供的密码,肯定会让人不爽,而此时用户可能本来就已经在担心他们自己系统还是不是能恢复正常运行的状态,不应该再让他们为其他事情头痛了。为这个问题提供更好的解决方案的方式似乎相当清晰,如果幸运的话,我们会在 2022 年底的 Fedora 37 中看到它。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

1fb576f5cdddae70586e968c2af9add0.png

普罗米修斯监控达梦数据库集群 -----------------------------------新增文件---------------------------------------注:图上即为启动成功,如果没有问题,则使用nohup后台启动程序。官网地址:https://github.com/gy297879328/dameng_exporter。注:prometheus的对数据库的指标采集如果高于60s一次,请手动修改提供表盘中的计算值。修改dameng_exporter.config配置文件,修改账号密码的部分。 阅读详情

相关推荐

深入解析YT8521S千兆以太网PHY芯片的设计与调试要点

本文深入解析了YT8521S千兆以太网PHY芯片的设计与调试要点。重点剖析了硬件设计中的电源方案、RGMII接口电平配置(尤其是1.8V电平方案)以及PCB布局布线等关键细节,并提供了从硬件检查、驱动配置到性能测试的完整调试流程,帮助工程师规避常见陷阱,实现稳定可靠的千兆网络连接。

weixin_29190573的博客 686

ssh设置:免密登入、修改默认端口、禁止root登入、限制错误登入次数,安全模式强制修改root密码

ssh需要做一些配置,比如修改默认服务器端口号、服务器不允许root登入、服务器限制最大的登入错误次数、客户端免密登入服务器

zz2230633069的博客 9170

汽车BMS技术分享及其HIL测试方案

在全球碳中和目标的战略驱动下,新能源汽车产业正以指数级速度重塑交通出行格局。动力电池作为电动汽车的"心脏",其性能与安全性不仅直接决定了车辆的续航里程、使用寿命等关键指标,更深刻影响着消费者对电动汽车的市场接受度。而电池管理系统(Battery Management System, BMS)是动力电池安全运行与性能释放的核心技术支撑。

Speedgoat的博客 2684

树莓派开机要按enter键问题

树莓派开机提示: Cannot open access to console, the root account is locked. See sulogin(8) man page for more details. Press Enter to continue. 网上查说是拔U盘引起的,进入系统后插上u盘,然后eject,然后拔出u盘,然后重启,然后就好了,然后也不知道为什么 ...

rong81117的博客 2733

opencv实践项目-图片拼接之缝合线算法

opencv 图片缝合线算法

wyw0000的博客 2624

Wio-LR1121多频段LoRa模块技术解析与应用实践

LoRa技术作为低功耗广域物联网(LPWAN)的核心通信方案,通过独特的扩频调制技术实现远距离传输与强抗干扰能力。其工作原理基于CSS(Chirp Spread Spectrum)调制,支持动态调整扩频因子(SF)和带宽(BW)来平衡传输距离与数据速率。Wio-LR1121模块作为Semtech LR1121芯片的载体,创新性地整合了sub-GHz、S-Band和2.4GHz多频段支持,配合仅1.35μA的睡眠电流,为跨境物联网部署提供了硬件基础。在智慧农业、工业监测等场景中,开发者可通过SPI接口快速集成

weixin_33742618的博客 415

linux 操作系统root账号被锁定的两种解决方法

linux 操作系统root账号被锁定的两种解决方法

weixin_46246967的博客 9362

Python计算时间差的方法

使用datetime模块是Python内置的方法,使用timedelta对象可以更精确地计算时间差,而使用dateutil库则提供了更为灵活和方便的操作方式。我们可以使用datetime模块中的datetime类来表示一个具体的日期和时间,并进行相应的运算。在Python中,我们经常需要计算日期和时间之间的差异,例如计算两个日期之间的天数、小时数、分钟数等。Python提供了多种方法来计算时间差,下面我们将介绍其中的几种常用方法,并附上相应的源代码。在上面的代码中,我们使用了dateutil库中的。

学习使你进步。 2085

Linux桌面模式root被锁定,记录-Linux root用户被锁定出现Account locked due to 217 failed logins...

记录-Linux root用户被锁定出现Account locked due to 217 failed logins这个错误是因为次数过多的原因导致的账号被锁[centos 6.5 忘记用户名和密码]1,启动虚拟机,出现下面的倒计时界面时,按键盘上的e键(说明:要确保光标此时已经在虚拟机内了,要不然,按了e键,也是在windows内,无效。e代表edit,启动前编辑)image2,进入如下后界面...

weixin_42300113的博客 3672

基于FPGA的64点fft变换verilog开发

这精度的损失在10bits看来对最后的误差的影响是存在是不可忽略的。此后,在这思想基础上又开发了高基和分裂基等快速算法,随着数字技术的高速发展,1976年出现建立在数论和多项式理论基础上的维诺格勒傅里叶变换算法(WFTA)和素因子傅里叶变换算法。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。

FPGA/MATLAB学习教程/源码/项目合作开发 1977

7.DJI-PSDK:psdk负载应用固件升级(基于RTOS)

在单片机应用程序开发阶段,我们可以借助keil5和J-LINK来直接下载应用程序进行开发和调试, 但在产品交付之后,我们对应用程序做了改动和升级,是断然不可能采用这种方式的,我们应该将新版本的程序固件打包发给客户, 能够方便用户通过DJI Assistant2选择更新负载设备的固件,导入本地固件程序包,更新负载设备。使用STM32F4 开发的负载设备从Flash 中直接读取固件文件并运行负载设备程序,因此开发者需先烧录Bootloader 再烧录应用固件,烧录Bootloader 的步骤不再赘述。

哒宰的博客 673

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 395

Python经典编程习题100例:第25例:求各个阶乘的和

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 求1+2!+3!+…+20!的和。 解题思路: > 调用math模块中的factorial函数 代码: import math sum=0 for i in range(1,21): sum+=math.factorial(i) print(sum) ..

优快云 精品推荐 2735

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 232

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python+Agent入门笔记(二):列表推导式、模块和异常,这些写 Agent 前得会

接上一篇《Python+Agent入门笔记(一)》。基础语法跑通之后,这篇聊几块日常写脚本绕不开的东西。还是按 JS/Go 开发者的视角写,尽量记录我实际卡过的地方。

qq_41241612的博客 430

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 418

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 205

Python3 协程:异步编程的核心机制与实战

协程是解决I/O密集型任务等待瓶颈的高效机制,相比线程更轻量、无锁开销。从yield到async/await的演进,使异步编程语义清晰、易于理解。通过async/await可实现并发执行多个任务(如gather、create_task),显著提升网络请求、爬虫等场景性能。关键在于使用异步库(如aiohttp)替代同步库,避免阻塞事件循环。合理控制超时与并发数,才能发挥协程最大优势。

Lxn2zh的博客 159

python如何控制浏览器

Python 可以通过 Selenium、Playwright 等工具实现浏览器自动化,从打开网页到执行复杂交互操作均可脚本化完成。Selenium生态成熟

2601_96797912的博客 76

torch.compile 差异仅 1e-6,边界样本预测为何翻转

torch.compile 加速后输出与 eager 不一致,部分预测翻转。逐层对比与 graph break 分析定位到动态分支翻转根因。容差回归仅适用于无分支翻转场景,零容忍场景应禁用编译。

昨日种种,皆成今我。今日种种,皆成新我。 158

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 267

Python 100讲课程导航:第08篇《Python input 与类型转换:构建可靠的交互程序》

本文详解Python中input()的返回类型为字符串,强调必须通过int()、float()等函数进行类型转换。重点讲解了输入验证的重要性,结合try-except处理ValueError等异常,实现可靠的交互程序。通过购物预算计算器实战,演示如何防范非法输入、处理边界值,并推荐使用Decimal避免浮点精度问题,提升程序健壮性。

铭渊老黄 134

【Python】国家中小学智慧教育平台电子教材批量下载与 PDF 合成实战

成果:两本语文电子课本(一年级上册 118 页 / 23MB、三年级上册 130 页 / 30.3MB),合计 248 页、约 54MB,单本下载加合成 40~60 秒,PDF 页数校验全部通过。经验教训SPA 站点的数据接口优先从 bundle 里挖,比抓页面稳得多;资源链接要按 private/public 分组看待,只取平台公开部分;页数、目录名这类“可推断”的信息,永远用实际响应验证一次;受限环境里“能不能跑浏览器”要在方案定稿前确认。后续计划:这版 PDF 是图片版,没有文字层;

木头大左的博客 123

魔塔社区微调训练Qwen2-1.5B-Instruct模型并烧录到‌RK3568开发板教程

本文基于Ubuntu 22.04 + CUDA 13.0.3环境,使用LLaMA-Factory框架对Qwen2-1.5B-Instruct模型进行LoRA微调,训练儿童故事生成专用模型。通过配置qwen模板、制作alpaca格式数据集、执行sft训练并合并LoRA权重,最终将模型转换为GGUF格式,并量化为Q4_K_M以适配RK3568嵌入式平台。全程支持国产镜像加速下载与显存优化,实现高效轻量化部署。

浅清秋慕夏的博客 185

【回眸】DeepSeek V4.1 Flash 快速上手与实战

本文介绍如何高效本地部署开源大模型,通过现代化工具链实现分钟级环境搭建。聚焦显存优化、一键安装、代码调用与多轮对话实现,解决“显存不足”“连接超时”等痛点,提供参数调优与结构化输出技巧,助力开发者在离线场景下快速构建稳定、高效的本地推理系统。

啤酒鸭的物联网开发记录博客 222

智叟云集-手机证据抓取系统的工程结构与应用入口

本文系统阐述手机证据抓取系统的工程结构与应用入口,涵盖四大层面:工程目录划分(Android、Python服务、Web页面、测试与构建工具);Android组件通过Manifest声明可启动页面,主界面由MainActivity管理;Python服务通过run.py解析参数并启动FastAPI应用,支持远程访问;浏览器页面采用HTML/CSS/JS分离架构,静态资源通过路径关联,实现动态交互。各模块分工明确,协同构建可运行的采集系统。

2301_77178996的博客 231
上一篇: LWN:SA_IMMUTABLE以及修改signal处理行为有多危险!
下一篇: LWN:对2022的任性预测~
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值