什么是 Debian/Ubuntu 上的运行级别“S”

Chr*_*her 8 ubuntu debian firewall runlevel

根据维基百科,'S' 应该是一个标准的运行级别:“单用户模式”。但如果我没记错的话,Debian 上的单用户模式是运行级别 1。我发现的一篇 Debian 文章声称,'S' 是一个运行级别,“系统在通往另一个运行级别的路上使用它”。有趣的...

实际上,到目前为止我一直几乎忽略了这个运行级别,但今天我玩弄了 Firestarter(是的,真的,一个最终用户防火墙)只是因为我很好奇它会生成哪个防火墙规则。但后来我注意到,它在 /etc/rcS.d 中创建了一个启动钩子,我想知道我的防火墙脚本是否也应该有它?

更新

现在我更想知道它在 Debian/Ubuntu 上的实际情况,因为 Shorewall 包(这是一个强烈的“Debianized”包)也在 rcS.d 中创建了它的(唯一!)启动钩子!

小智 5

以上所有内容似乎都回避了对问题的直接回答。

据我所知,rcS.d脚本的实现方式是S启动”而不是“单一”。

它们都在引导期间运行。如果您想使用运行级别 1,则运行 中的脚本rc1.d(考虑到我们刚刚在 中所做的所有工作,该脚本很可能是空的rcS

更重要的是,rcS脚本的运行方式是rc3- 系统有效地将自身置于单用户模式,然后重新思考并决定它真正应该做什么。非常混乱,而且大多没有记录。

作为证明,如果您检查/etc/inittab,您会发现:

 # Boot-time system configuration/initialization script.<br>
 # This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
Run Code Online (Sandbox Code Playgroud)

随后是许多类似以下的行:

l3:3:wait:/etc/init.d/rc 3
Run Code Online (Sandbox Code Playgroud)


mdp*_*dpc 4

我以这种方式查看运行级别:

 S - true single user mode usually drops you into a minimal root shell
 1 - Administrative mode, you get a standard login request before access
 2 - Multi-user without TCP/IP networking -- could use serial ports for other logins
 3 - Multi-user with TCP/IP networking and text 
 4 - To be determined by the system owner
 5 - Multi-User with TCP/IP networking and graphic console 
 6 - reboot
 0 - shutdown and power down
Run Code Online (Sandbox Code Playgroud)

因此,如果 TCP/IP 已启动并正在运行,则确实需要防火墙,并且这种情况通常仅发生在初始状态 3 中。