Linux,Microsoft Active Directory和Home文件夹

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

我已经使用Centrify Expressconfiguration了针对AD的linuxlogin,但是现在我遇到了另一个问题:

每次用户首次login到Linux服务器时,Linux都会自动为该用户创build一个主文件夹。 我希望Linux停止创build这些文件夹,并且(如果可能的话)创build一个通用的,以前创build的文件夹(比如说/home/users )作为用户的主文件夹。

可以做你所要求的,但你真的不应该 – Unix用户应该总是有一个专用的主目录,由用户的UID拥有。
这是Unix期望的,而你上面给出的原因是做错了一个可怜的理由。

简要总结一下问题:

  • 权限
    如果你的用户有不同的UID,并且共享一个主目录,那么很多事情都会中断。
    SSH将无法正常工作(因为〜/ .ssh将拥有错误的所有者/权限)
    壳历史可能无法正常工作(几乎肯定会抛出错误)。
    你的用户总是会让别人无法读取/pipe理的文件,或者踩在彼此的文件上。

  • 安全和审计
    Unix几乎所有的东西都依赖于数字UID。 如果通过为每个人分配相同的UID来解决权限问题,那么您将失去审计谁做什么的能力。
    如果John Doe和Jane Smith都login到系统中,并且有人删除Apacheconfiguration(由于恶意或偶然),追查相关负责人变得非常困难。

  • 最less惊讶的原则
    一般来说,你应该build立一个系统,其行为与世界上大多数人所期望的一样。
    这意味着每个用户都有一个明确的用户名,用户ID和主目录(在一般情况下,用户的主目录名称与他们的用户名相匹配)。
    build立一个违反“最小惊讶原则”的系统应该是非常好的理由(正如我在上面提到的,你似乎缺乏一个很好的理由)。


鉴于上述情况,如果您仍想这样做,那么基于您已经告诉我们Centrify Express符合RFC 2307的事实,最好的解决scheme是将所有用户分配相同的用户和组ID( uidNumber / gidNumber )和主目录( homeDirectory )。

这可以最大限度地减less破坏事件的可能性(SSH,shell历史logging,文件权限等都将罚款,因为数字UID是相同的),以牺牲安全性/问责性为代价。

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

解决这个问题的一个更好的方法是在你的Unix系统上创build一个本地pipe理员账户,并允许你的用户使用他们的SSH密钥来访问它。 这仍然在一定程度上破坏了问责制,但留下了仍然可以用作“正常”unixlogin名的LDAP / AD帐户。