如何对用户完全隐藏内容?

如何对用户完全隐藏内容?

我想让我的一些朋友通过创建用户帐户来访问我的计算机。他们主要通过 sftp 和 ssh 访问我的计算机,但有时他们也可以在我家里访问它。但是我不希望他们能够看到我的所有文件(不是我的主目录中的个人文件,我的意思是驻留在用户目录之外的文件,例如 etc、lib...)

我最近问了一个问题:

OpenSSH,chroot 用户:root 需要拥有用户目录,有什么后果吗?

给我的要求是,如果我 chroot 用户,我将需要为每个用户创建一个完整的环境。

有没有一种方法可以真正阻止用户走出他们的主目录,并阻止他们将参数传递给像cp这样指向他们的主目录之外的程序,或者有什么方法可以真正保持我的系统的私密性?最好的解决方案是什么?我希望他们能够充分使用我的所有程序,但无法复制或读取文件,或使用程序读取或复制其主目录之外的文件。

答案1

我怀疑您是否可以允许他们充分使用您的所有程序,但无法读取家中以外的文件。所需要的只是一个依赖于配置文件的程序来破坏它。

您可以创建虚拟机并授予他们对虚拟机的用户(或 root)访问权限。

一些常见的虚拟机解决方案是:

  1. Xen
  2. 虚拟盒子
  3. 键盘虚拟机
  4. 开放VZ

答案2

您有几个选项可以使您的主目录(或其一部分)不受限制。

  • 使用 . 将您的主目录更改为仅所有者访问chmod 700 ~。这将只允许您和 root 访问该目录。

  • 将您的主目录移至加密的文件系统。 (这将阻止他们在您未加密的情况下访问它。如果在您的文件系统未加密时他们可能具有访问权限,请与上述内容结合使用。)

  • 使用文件加密工具来防止访问单个文件。

  • 将私有文件隐藏在隐藏目录中。使用类似的名称.private来隐藏您的私人内容。这只是默默无闻的安全。您需要将其与上述一个或多个选项结合起来以确保其安全。

请记住,如果您向您的朋友授予 root 访问权限,他们就有很大的权力绕过您的安全设置。 (与您不想共享的文件共享对系统的访问权限存在风险。)

答案3

根据“完全使用我的所有程序”的含义,选项包括:

  • 使用标准 Unix 文件权限来保护您的文件。这样做的优点是设置非常容易,只需决定要保护哪些文件并为其设置适当的权限即可。缺点是您的朋友将无法执行系统上的所有操作,因为他们没有 root 访问权限

  • 运行 FreeBSD 监狱。 FreeBSD 有专门为此目的而设计的监狱。设置它们需要花费一些精力,但是您为您的朋友提供了一个完整的文件系统,他们可以按照自己的意愿使用:http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html

  • 运行真正的虚拟机。可以运行 Xen 或 Virtualbox 来为您的朋友提供完全可操作的服务器。这在内存、CPU 和磁盘方面可能是相当资源密集型的,但它与文件的分离程度最高。

答案4

铁棒壳可能正是您正在寻找的。

Iron Bars SHell,或简称 ibsh 是我为 Linux/Unix 创建受限工作环境的第一次尝试。我确信许多系统管理员希望或曾经希望有一种方法将某些/所有用户锁定在安全的地牢中,在那里他们只能损害自己的文件。

这是一些更多信息关于如何使用它。

相关内容