Назад | Перейти на главную страницу

Как автоматизировать создание каталогов на NFS-сервере?

Я создал и настроил тестовую среду из 3 виртуальных машин:

  1. Сервер FreeIPA, обеспечивающий krb5-аутентификацию
  2. NFS-сервер, использующий сервер 1 для защиты
  3. Клиент, который автоматически монтирует домашние каталоги с сервера nfs

Проблема в том, что когда я добавляю пользователя в свой домен kerberos (в данном случае используя веб-интерфейс FreeIPA), мне все равно нужно подключаться к файловому серверу, чтобы создать домашний каталог для пользователя. По общему признанию, это простой процесс, но он усложняет процесс создания пользователей и не дает мне возможности делегировать задачу нетехническим людям, потому что мне пришлось бы предоставить им доступ к файловому серверу.

Моей первой идеей было создать задание cron, которое извлекает список пользователей и создает отсутствующие дома. Проблема в том, что это оставляет временные рамки после создания, когда учетная запись не работает, что обязательно вызовет проблемы.

TL; DR: Как лучше всего автоматически создавать пользовательские каталоги (дома) на автономном NFS-сервере?

Одно из решений этой проблемы - использовать pam_mkhomedir чтобы создать свой домашний каталог при первом входе в систему. Описание на странице руководства:

   The pam_mkhomedir PAM module will create a users home directory if it 
   does not exist when the session begins. This allows users to be 
   present in central database (such as NIS, kerberos or LDAP) without 
   using a distributed file system or pre-creating a large number 
   of directories. The skeleton directory (usually /etc/skel/) is used 
   to copy default files and also sets a umask for the creation.

Пример из man-страницы:

  A sample /etc/pam.d/login file:

         auth       requisite   pam_securetty.so
         auth       sufficient  pam_ldap.so
         auth       required    pam_unix.so
         auth       required    pam_nologin.so
         account    sufficient  pam_ldap.so
         account    required    pam_unix.so
         password   required    pam_unix.so
         session    required    pam_mkhomedir.so skel=/etc/skel/ umask=0022
         session    required    pam_unix.so
         session    optional    pam_lastlog.so
         session    optional    pam_mail.so standard

Вот несколько способов сделать это, но я бы не стал использовать термин «передовой опыт».

  1. Cron Job Это будет работать - я делал это раньше. Почему бы не сработать? Сделайте его запускать периодически в рабочее время и предупреждать новых пользователей, что их учетная запись будет готова к использованию через X минут.
  2. Правильно централизовать управление аккаунтом Создайте сценарий / интерфейс, который использует команды IPA, добавляет домашние каталоги и все остальное (например, почтовый ящик) на безопасный сервер управления, вместо того, чтобы делать это вручную через графический интерфейс. Это вариант, который я бы предложил, если у вас есть ресурсы.
  3. Используйте терминал "первого входа" Создайте выделенную безопасную рабочую станцию ​​(если все пользователи находятся в непосредственной близости) или сервер, чтобы пользователи могли войти в систему в первый раз, используя настройку jordanm для автоматического создания домашнего каталога.