Що відбувається з автентифікацією користувачів LDAP та домашнім каталогом NFS, коли він знаходиться поза мережею?


9

В даний час у мене в домашній мережі є кілька машин, які являють собою суміш статичних настільних ПК та ноутбуків. Для мене стає некерованим, і для всіх них недоцільно мати місцеві домашні каталоги, налаштування та безпеку, тому я розглядаю можливість використання LDAP для загального управління користувачами та NFS для спільних домашніх каталогів.

Що відбувається, коли один із ноутбуків виходить на дорогу? Домашня мережа недоступна, тож автентична помилка і повернеться до локального сховища? Крім того, коли ноутбук повертається, чи існує спосіб повторної синхронізації домашнього сховища на сервері NFS?

Відповіді:


6

Ні NFS, ні LDAP не підтримують роботу: тобто, коли ноутбук не зможе дістатися до серверів, він не зможе отримати доступ до жодних каталогів, встановлених NFS, і не зможе виконувати пошук користувачів. В основному, він буде застряг.

Кілька шляхів вирішення можуть бути наступними.

Замість того, щоб обмінювати домашні каталоги через NFS, ви можете зберегти локальні каталоги в унісон, щоб синхронізувати їх з тим, що знаходиться на центральному сервері. Ви можете запустити unison з 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-updatedbІ libpam-ccredsпакети забезпечують більш чистий спосіб встановити це: з nss-updatedbви можете відтворити локально passwd.dbі group.db, в той час як shadowінформація управляється libpam-ccreds. Інструкції щодо їх налаштування можна знайти у READMEфайлах, що супроводжують пакунки.


@Jorge: велике спасибі за цю пропозицію! Я оновив текст відповіді.
Ріккардо Муррі

2

Файли

Що стосується файлів, я б зайнявся сітковою синхронізацією для загальних файлів (скажімо, Ubuntu One або Dropbox ), а потім мав би спільну папку для більших файлів (можливо, ISO, Music, Photos, Video та Ubuntu). Це може бути монтування NFS, що при його відмові не має великого значення, або акція Samba, чи, мабуть, одна з ряду інших технологій.

LDAP

Невдача LDAP безумовно спричиняє проблеми. Усі види системних облікових записів, про які ви зазвичай не знаєте, не можуть бути перекладені (ім'я <-> ідентифікаційний номер), і система, у кращому випадку, кілька разів зависає хвилину за один раз, очікуючи відповіді на сервері 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 man

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, ви можете замість цього навчитися основній ляльці і використовувати це, щоб усі ваші користувачі залишалися однаковими у всіх системах - див. Цей рецепт ляльок, наприклад. Лялька дозволить вам зробити ще багато інших речей - встановлення загальних пакетів, загальний набір різних аспектів ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.