我需要设置一个由二十台 Ubuntu 机器和一台服务器组成的网络。目前,用户在机器上有本地帐户,但我希望进行集中式用户身份验证,将所有用户信息存储在服务器上,并设置服务器端主目录。因此,当用户登录任何客户端计算机时,应在服务器上检查其用户名和密码,然后应通过 NFS 或其他方式从服务器挂载其主目录。
我该怎么做?哪种方法最好?
答案1
我以前也运行过类似的东西。LDAP 是集中账户的最佳选择。这是相当标准的,应该很容易设置。客户端只需安装几个包(ldap-utils、libnss-ldap 和 libpam-ldap)并编辑 /etc/pam.d/common-(everything) 即可。您需要添加一行,例如
<type of file goes here> sufficient pam_ldap.so
除此之外,您还必须编辑 /etc/nsswitch.conf,在 shadow、group 和 passwd 的末尾添加 ldap。
服务器稍微复杂一些。这似乎包含了一个关于如何设置它的相对最新的示例。OpenLDAP 文档也值得一读。
对于主目录,您需要使用 NFS。根据您是否需要在用户未登录时卸载它们,您可能需要使用自动挂载程序 (autofs)。我从未使用过这个,所以我不能告诉你你会在哪里遇到麻烦,但是没有它工作应该是完全可行的,并且会给你带来同样的效果,而设置却不那么复杂。
答案2
显然,您可以使用 LDAP 来集中管理用户帐户。有人告诉我,这不容易设置。我们从来没有这样做过,因为我们没有太多用户。但是,集中目录已经实现。这是通过在其他服务器上对中央服务器的主目录进行 NFS 挂载来实现的。它工作得很好。