离开网络时,LDAP用户身份验证和NFS主目录共享会发生什么?


9

目前,我在家庭网络上有几台计算机,这些计算机是静态台式机和笔记本电脑的混合物。它对我来说变得难以管理,并且对所有人都具有本地主目录,设置和安全性是不切实际的,因此我正在考虑将LDAP用于普通用户管理,将NFS用于共享主目录。

当其中一台笔记本电脑不在路上时会发生什么?家庭网络无法访问,因此身份验证会失败并回退到本地存储吗?另外,当笔记本电脑返回时,是否可以将家庭存储重新同步到NFS服务器?

Answers:


6

NFS和LDAP都不支持断开连接的操作:即,当便携式计算机无法访问服务器时,它将无法访问任何NFS挂载的目录,也将无法执行用户查找。基本上,它将被卡住。

以下是一些解决方法。

您可以通过统一使用本地目录来与本地服务器上的本地目录保持同步,而不是通过NFS替换主目录 。您可以从cron运行一致的测试,如果服务器无法访问,该测试将中止操作。这篇关于AskUbuntu的文章 以及另一篇文章 提供了关于同步主题的讨论和一些有用的建议。

关于用户身份验证/授权问题,解决方案围绕着使用libnss-db用作用户信息源:

  • 安装libnss-db,然后配置/etc/nsswitch.conf以查找db常规代码以外的源代码files

    passwd:文件db组:文件db阴影:文件db

    所述db源文件位于/var/lib/misc/var/lib/misc/passwd.db等)。然后,您可以在中央服务器上保留这些文件的主副本,并将客户端与rsync+ 同步cron。缺点:尚无现成的管理脚本来管理服务器上的db文件(据我所知),而且您会遇到同步延迟,并且必须设置一种rsync连接主服务器的方法。

  • nss-updatedblibpam-ccreds封装提供了一种更清洁的方式来进行设置:与nss-updatedb您可以在本地的重建 passwd.dbgroup.db,而shadow信息由管理libpam-ccredsREADME软件包随附的文件中提供了有关如何设置这些文件的说明。


@Jorge:非常感谢这个建议!我已经更新了答案文本。
Riccardo Murri

2

档案

至于文件,我会针对普通文件(例如Ubuntu OneDropbox)进行基于网络的同步,然后为更大的文件(例如音乐,照片,视频和Ubuntu ISO)提供一个共享文件夹。这可能是一个NFS挂载,它发生故障时没有太大关系,也可以是Samba共享,也可能是许多其他技术之一。

LDAP

LDAP失败肯定会引起麻烦。您通常不知道的各种系统帐户都无法翻译(名称<-> id号),并且系统最多在等待LDAP服务器响应之前一次反复挂起一分钟。退回到本地系统。否则系统可能只是锁定而完全失败。

一些解决方法。您可以通过各种方式设置本地副本并将其同步-查看此问题和链接问题的其他答案。您还可以告诉LDAP不要从LDAP目录中获取系统用户,而是从本地文件中获取。在我们的服务器上,我们将以下内容放在了最后ldap.conf

# We need to ensure that various things can work without LDAP being available
# for example: booting, ssh in as root, apache ...
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,dhcpd,games,gdm,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,munin,mysql,nbd,news,ntp,nut,polkituser,proxy,pulse,root,sshd,statd,sync,sys,syslog,uucp,www-data

您需要确保所有系统用户都在该列表中。即使那样,对于笔记本电脑的使用来说可能还不够。

nss_ldap手册页

nss_initgroups_ignoreusers <user1,user2,...,userN>
          This option directs the nss_ldap implementation of initgroups(3)
          to return NSS_STATUS_NOTFOUND if called with a listed  users  as
          its argument.

因此,基本上LDAP假装它甚至不联系主服务器就不认识那些用户,因此NSS依靠本地用户,系统运行正常。

最后一个想法是,如果您愿意花时间学习LDAP,则可以学习一些基本的人偶,并使用它来使所有用户在所有系统上保持相同- 例如,请参阅此人偶配方。Puppet还将允许您做很多其他事情-安装常用软件包,各个方面的常用设置...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.