Co dzieje się z uwierzytelnianiem użytkowników LDAP i udostępnianiem katalogu domowego NFS, gdy znajduje się poza siecią?

8

Obecnie mam kilka komputerów w sieci domowej, które są mieszanką stacjonarnych komputerów stacjonarnych i laptopów. Jego zarządzanie staje się niemożliwe i niepraktyczne dla wszystkich z nich mieć lokalne katalogi domowe, ustawienia i bezpieczeństwo, więc rozważam użycie LDAP do wspólnego zarządzania użytkownikami i NFS do współdzielonych katalogów domowych.

Co się stanie, gdy jeden z laptopów znajdzie się w drodze? Sieć domowa jest nieosiągalna, więc autoryzacja się powiedzie i powróci do pamięci lokalnej? Ponadto, gdy laptop wraca, czy istnieje sposób na ponowne zsynchronizowanie pamięci domowej z serwerem NFS?

    
zadawane Jim 16.10.2010, 08:23
źródło

2 odpowiedzi

6

Ani usługa NFS, ani LDAP nie obsługują operacji rozłączonych: np. gdy laptop nie może połączyć się z serwerami, nie będzie mógł uzyskać dostępu do żadnego z nich Katalogi montowane na NFS, ani nie będą mogły wykonywać odnośników użytkownika. Zasadniczo utknie.

Kilka obejść może być następujących.

Zamiast tworzyć domowe katalogi za pośrednictwem NFS, możesz zachować lokalny katalogi użytkowania unison do synchronizacji je z tym na serwerze centralnym. Możesz uruchomić unisona z cron, strzeżony przez test, który przerywa działanie, jeśli serwer jest nieosiągalny. Ten post na AskUbuntu i ten inny jeden dostarczyć dyskusję na temat synchronizacji i kilka przydatnych sugestie.

Odnośnie problemu uwierzytelnienia / autoryzacji użytkownika, rozwiązania obraca się wokół, używając libnss-db jako źródła dla użytkownika informacje:

  • Zainstaluj libnss-db , a następnie skonfiguruj /etc/nsswitch.conf , aby wyszukać źródło db oprócz zwykłego files :

    passwd: files db   grupa: pliki db   shadow: pliki db

    Pliki źródłowe db znajdują się w /var/lib/misc ( /var/lib/misc/passwd.db itp.). Następnie możesz zachować kopię główną z tych plików na centralnym serwerze i zsynchronizować klientów z rsync + cron . Wady: nie ma gotowych skrypty zarządzania do zarządzania plikami db na serwerze (które znam z), dodatkowo masz opóźnienie synchronizacji i musisz ustawić sposób dla rsync , aby połączyć się z serwerem głównym.

  • Pakiety nss-updatedb i libpam-ccreds zapewniają czystsze sposób na ustawienie: z nss-updatedb możesz odtworzyć lokalnie passwd.db i group.db , natomiast informacja shadow jest zarządzane przez libpam-ccreds . Instrukcje, jak je ustawić, mogą być znalezione w plikach README towarzyszących pakietom.

odpowiedział Riccardo Murri 16.10.2010, 11:55
źródło
2

Pliki

Jeśli chodzi o pliki, wybrałabym synchronizację opartą na sieci dla zwykłych plików (np. Ubuntu One lub Dropbox ), a następnie mają udostępniony folder dla większych plików (może muzyki, zdjęć, wideo i Ubuntu ISO). Może to być mount NFS, który, gdy zawiedzie, nie ma większego znaczenia, lub udział Samby, lub prawdopodobnie jedna z wielu innych technologii.

LDAP

Niepowodzenie LDAP zdecydowanie przysparza kłopotów. Nie można przetłumaczyć wszystkich rodzajów kont systemowych, których zwykle nie można przetłumaczyć (nazwa i numer identyfikacyjny), a system będzie w najlepszym przypadku zawieszał się na minutę w czasie oczekiwania na odpowiedź z LDAP serwer przed powrotem do systemu lokalnego. Lub system może po prostu się zablokować i całkowicie zawieść.

Istnieją sposoby obejścia tego . Możesz ustawić lokalną kopię i zsynchronizować ją na różne sposoby - zobacz inne odpowiedzi na to pytanie i powiązane pytanie. Możesz także powiedzieć LDAP, aby nie pobierał użytkowników systemu z katalogu LDAP, ale z plików lokalnych. Na naszych serwerach umieściliśmy następujące na końcu naszego 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

Użytkownik powinien upewnić się, że wszyscy użytkownicy systemu znajdują się na tej liście. Nawet wtedy prawdopodobnie nie wystarczy do korzystania z laptopa.

Z strony podręcznika 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.

W zasadzie LDAP udaje, że nie zna tych użytkowników, nawet nie kontaktując się z serwerem głównym, więc NSS wraca do lokalnych użytkowników, a system działa dobrze.

Ostatnim pomysłem jest to, że jeśli chcesz spędzić czas na nauce LDAP, możesz zamiast tego nauczyć się kilku podstawowych lalek i wykorzystaj to, aby utrzymać wszystkich użytkowników tak samo we wszystkich systemach - zobacz ten przepis na kukłę na przykład. Lalek pozwoli ci również na wiele innych rzeczy - instalowanie wspólnych pakietów, wspólnej konfiguracji różnych aspektów ...

    
odpowiedział Hamish Downer 16.10.2010, 17:09
źródło

Przeczytaj inne pytania na temat tagów