在 Windows 上,可以对非特权用户“隐藏”驱动器、系统文件夹的内容,并仅允许他们访问其用户目录中的文件。在这种情况下,即使用户执行文件/打开,他们也只能看到其用户目录。
有没有办法在 Linux 上实现同样的功能?这样当用户登录远程服务器时,他只能访问自己的文件。
更新:在远程服务器上,用户可以运行 GUI 应用程序。最终目标是防止他们在 File/Open 等中看到系统内部情况,并且防止他们在输入该文件的完整路径时访问 /etc/passwd。
答案1
简短的回答是“不”。为了让用户与他们的数据交互,他们需要使用程序(bash、ls、cat、vi……)。为了使用这些程序,用户必须能够列出它们所在的目录并读取包含这些程序的文件中的内容。
您可以阻止用户访问其他通过适当设置权限(和权限掩码)和/或通过 chroot 限制访问来访问用户数据文件(但他们仍然可以看到他们有权访问的配置和可执行文件)。
最终目标是防止他们在文件/打开中看到系统内部信息
作为终极目标,这有点毫无意义——威胁模型是什么?他们如何通过这样做获得/破坏安全?
答案2
您可以在用户的主目录中“chroot”用户(他们无法访问主目录中的上层目录并查看其他任何内容)。您可以检查权限以阻止特殊组中的用户访问(但大多数系统实用程序仍会继续按用户需要运行)。在最后一种情况下,您没有日志(但它们是否有必要,因为您知道您的用户无法查看文件?)