防止用户修改文件:这种方法安全吗?

防止用户修改文件:这种方法安全吗?

我今天在想,是否有办法强制非 root 用户拥有特定authorized_keys文件(以及其他合理文件)。我想到了这个解决方案。

  • 禁用StrictModessshd_config必须处理文件所有权和其他内容,并且sshd活动StrictModes非常挑剔)
  • 使用粘滞位防止用户删除其主目录中不属于自己的文件:

    • chown root:user /home/user
    • chmod 1770 /home/user
  • 每个不应修改/删除的文件和目录都应经过以下步骤:

    • chown root:user file_or_folder
    • chmod 0640 file_or_folder
    • chmod g+x folder

到目前为止,这种方法似乎有效。用户无法修改/删除文件,并且不存在用户将自己的主文件夹保留为可读/可写的风险(这似乎是背后的原因StrictModes) 因为他不拥有自己的主目录。

问题是:我是否遗漏了什么?可以规避吗?有缺点吗?

答案1

看起来不错,但在 Linux 中可能总有办法绕过它,因为一旦你有了一个帐户,如果你不信任你的用户,提升你的权限比闯入要容易得多。如果你真的担心,我建议使用某种受限制或受限的 shell。这些也不能防黑客,但在大多数情况下往往有帮助。

您可以让用户更难通过 chattr +i 文件来使其不可变。

答案2

我会保持 StrictModes 处于启用状态。这样做的目的是让其他人难以替换用户的 AuthorizedKeys 文件。您可能已经保护了此用户,但所有其他用户都容易受到攻击。

如果配置损坏,可以使用各种工具来重新建立合理的配置。我一直在使用cfenginepuppet这是一种流行的替代方案。即使用户更改了设置,该工具也会将配置重置为合理状态。如果需要,它可以提醒需要进行更改。

从您的要求来看,您似乎是在保护某个服务的帐户。通常,这些帐户没有密码,也不是普通用户的帐户。这种对普通用户帐户的要求会让我的安全担忧。作为用户,我不会接受对我的帐户的这种限制。作为管理员,我会担心该帐户被用于两个不同的安全配置文件。

相关内容