如何从Linux中彻底删除用户子系统?

如何从Linux中彻底删除用户子系统?

是否有可能从 Linux 中完全删除用户子系统。

我不是在谈论阻止人们登录。我是在谈论删除系统中甚至可以登录的部分。

结果是操作系统一旦启动就无法访问,因为除了已经在其上运行的应用程序(即 Web 服务器)之外,无法访问它。

目标是系统无法通过任何需要获得用户级命令行访问权限的机制进行破解,因为不存在用户级命令行系统。

答案1

这是一个有趣的区别:

我不是在谈论阻止人们登录。我是在谈论删除系统中甚至可以登录的部分。

我不完全确定除了语义差异之外实际上还有其他什么。如果我要删除,/bin/login那么您将无法登录(在物理终端上),因为我已经使其无法登录。但我不会删除整个登录子系统。

我的建议是尽可能保持完整,因为可能存在不可预见的依赖关系。将用户保留在适当的位置,以便您的 Web 服务器以不同于 的帐户运行root。通过修改 PAM 子系统来防止交互式和非交互式登录。可以选择sudo以类似的方式阻止类型访问。

  1. 准备“拒绝”的 PAM 定义

    创建/etc/pam.d/denied包含以下两行:

    auth requisite pam_deny.so
    session requisite pam_deny.so
    
  2. 防止从终端/屏幕登录

    替换/etc/pam.d/login为副本/etc/pam.d/denied

  3. 防止网络登录ssh

    替换/etc/pam.d/sshd为副本/etc/pam.d/denied

    编辑/etc/ssh/sshd_config并确保已UsePam yes设置。

  4. (可选)尝试禁用sudo

    替换/etc/pam.d/sudo为副本/etc/pam.d/denied

实际上,与其拒绝所有登录,不如允许从物理终端/屏幕进行 root 登录并拒绝其他所有登录。这也可以通过 PAM 完成,但超出了问题的具体范围。

答案2

好吧,理论上您可以重命名/删除该/bin/login命令。

不确定这是否会阻止single user mode。也不确定您是否想预防single user mode

您还可以做一些有趣的事情来pam.d阻止所有用户登录,但这只是阻止用户登录,而不是破坏登录的想法。

当我回到家时,如果我记得的话,我会启动一个虚拟机并尝试一下。也可以删除该/etc/shadow文件,但这也可能会破坏其他所有内容。

边注:不要想要彻底打消用户的念头。不是因为没有任何登录能力是一个坏主意(确实如此,但这不是本线程的重点),而是因为由于权限用户需要存在。如果没有用户,您将被迫授予rwx系统上的所有文件权限才能运行您的服务,这将导致无法运行的问题需要登录以进行黑客攻击,人们可以访问他们想要的任何内容。

相关内容