我可以完全删除 Linux/systemd 上的交互式登录吗?

我可以完全删除 Linux/systemd 上的交互式登录吗?

我的目标是配置一个使用 systemd 的“封闭/黑匣子”Linux,但根本不可能进行任何类型的交互式登录。

我不是在谈论只是关闭某些配置选项来关闭交互式登录,我想知道是否有一种方法可以使系统在任何情况下都无法登录,因为机器上没有软件允许登录。

那可能吗?

答案1

作为一个 StackExchange 问题,并且细节很少:不。作为配置步骤很可能无法做到这一点。

您可以删除少量关键链接,但不能彻底删除。

通常,您不会删除所有交互式 shell 解释器,因为您需要一个来运行 shell 脚本。 systemd 项目的目标是在没有它们的情况下启动,并且它也使许多系统软件能够这样做,但仍然很难说你会绝不想要运行一个shell脚本。例如rpmdpkg使用 shell 运行包安装操作。

login( 和sulogin) 是名为 的单个包的一部分util-linux。一般情况下你不会删除这个包。例如,util-linux也是提供程序的包mount,它是 PID 1 的依赖项systemd。因此,您必须破坏(删除)已安装包的部分内容。这通常是可以避免的,例如,如果您升级软件包,损坏将被修复,如果您想要验证软件包校验和,它将显示为警告等。

systemd/system/debug-shell.service根据这些定义,您也必须删除。该文件也不是旨在修改或删除的配置文件,它是systemd包的一部分。

未运行允许登录的软件将是实现这一目标的标准方法。它相当干净和有效。另一种标准技术是不创建任何具有解锁密码和(或)有效登录 shell 的用户。如果我感到偏执,我会选择后者。 (为了清洁和减少“攻击面”,以及为了冗余,前者自然会遵循)。

答案2

您可以禁用 getty 服务[email protected]。您可以禁用sshd.您可以禁用可能提供登录的其他服务。

您可以将每个用户的密码字段设置为/etc/shadow*这样即使有允许登录的服务也没有有效的密码。

相关内容