Linux、Microsoft Active Directory 和主文件夹

Linux、Microsoft Active Directory 和主文件夹

我有一个在 Windows 2008 R2 下运行的 AD,并且有多个 Ubuntu 和 Debian 服务器。

我已经使用以下方式配置了针对 AD 的 Linux 登录集中快递,但现在我又遇到了另一个问题:

每次用户首次登录 Linux 服务器时,Linux 都会自动为该用户创建一个主文件夹。我希望 Linux 停止创建这些文件夹,并且(如果可能的话)将一个通用的、以前创建的文件夹(假设/home/users)设为用户的主文件夹。

答案1

按照你的要求去做,但是你真的不应该-- Unix 用户应始终拥有一个专用的主目录,由该用户的 UID 拥有。
这是 Unix 所期望的,而您上面给出的理由不足以证明您做错了什么。

简单总结一下问题:

  • 权限
    如果您的用户拥有不同的 UID 并共享主目录,则很多事情都会出错。SSH
    将无法正常工作(因为 ~/.ssh 的所有者/权限不正确)
    Shell 历史记录可能无法工作(并且几乎肯定会抛出错误)。
    您的用户将不可避免地创建其他人无法读取/管理的文件,或互相踩踏文件。

  • 安全和审计
    Unix 几乎在所有事情上都依赖数字 UID。如果你通过为每个人分配相同的 UID 来解决权限问题,你最终会失去审核谁做了什么的能力。
    如果 John Doe 和 Jane Smith 都登录到系统,并且某人删除 Apache 配置(出于恶意或意外),追踪责任人变得非常困难。

  • 最小惊讶原则
    通常,您应该设置符合大多数人期望的系统。
    这意味着每个用户都有不同的用户名、用户 ID 和主目录(一般情况下,用户的主目录名称与其用户名匹配)。
    设置违反最小惊讶原则的系统只能通过以下方式完成:极其充分的理由(正如我上面提到的,你似乎缺乏一个充分的理由)。


鉴于上述情况,如果您仍想这样做,那么基于您告诉我们 Centrify Express 是RFC 2307兼容,最好的解决方案就是为所有用户分配相同的用户和组 ID ( uidNumber/ gidNumber) 以及主目录 ( homeDirectory)。

这最大限度地减少了发生破坏的可能性(SSH、shell 历史记录、文件权限等都会没问题,因为数字 UID 是相同的),但代价是安全性/责任感。

这也意味着您不能在任何其他系统上将这些帐户用作“普通”unix帐户 - 这些帐户实际上是具有不同密码的一个帐户(UID)的别名。

解决这种情况的更好方法是在 Unix 系统上创建一个本地管理员帐户,并允许用户使用他们的 SSH 密钥访问该帐户。这仍然会在一定程度上破坏责任制,但您仍可以使用 LDAP/AD 帐户作为“普通”unix 登录名。

相关内容