Подключаем сервер с Samba к домену Windows (3 часть): управление пользователями.

Одна из важнейших задач Active Directory — централизованное управление пользователями. Единое хранилище учетных записей и единый центр аутентификации дают массу преимуществ: возможность быстро и легко заменить одну или несколько рабочих станций, доступ администратора и пользователей к своей учетной записи с любого места, быстрое подключение нового участника и т. д. Но как все это реализовать? Сегодня я расскажу об этом.

Цикл статей о Samba.

  1. Установка и простая настройка.
  2. Управление доступом.
  3. Графические и Web-интерфейсы.
  4. Подключаем сервер с Samba к домену Windows (1 часть).
  5. Подключаем сервер с Samba к домену Windows (2 часть).
  6. Подключаем сервер с Samba к домену Windows (3 часть): управление пользователями.
  7. Samba в роли контроллера домена Active Directory.

Учетные записи домена в Ubuntu.

В прошлой статье из этого цикла мы начали, но не завершили добавление в Ubuntu пользователей, зарегистрированных на контроллере домена. Давайте сделаем это сейчас.

Прежде всего, необходимо сообщить Ubuntu, что помимо локальной базы данных пользователей существует еще одна, за связь с которой отвечает Winbind. Для этого откройте файл /etc/nsswitch.conf и найдите следующие строки:

В обеих после compat добавьте winbind. Больше ничего трогать не нужно (во всяком случае, мне не потребовалось, хотя в документации официальном сайте Ubuntu есть другая информация). Для проверки я поищу пользователя Администратор, который точно существует на контроллере домена и отсутствует на локальном компьютере:

Вы тоже можете выполнить такую проверку, только не забудьте подставить нужное имя пользователя и убедиться, что контроллер доступен по сети. Если он недоступен (например, выключен), получить оттуда учетные записи не выйдет.

Но радоваться еще рано — залогиниться, используя имя и пароль, созданные на контроллере домена, сейчас не выйдет. Сначала необходимо внести еще одну правку. Откройте /etc/pam.d/common-session и вставьте туда следующую строку:

Дело в том, что на каждого пользователя в Linux приходится набор обязательных файлов. Для пользователя, созданного на сервере с Windows, таких файлов, разумеется, не существует. Для решения этой проблемы мы вызываем модуль PAM (системы аутентификации в Linux) pam_mkhomedir.so, который отвечает за создание пользовательских директорий. Параметр skel (skeleton directory) определяет путь к папке с необходимыми файлами. Как только будет создана директория для подключившегося пользователя, в нее будет скопировано содержимое скелетной (отсюда и название) папки. Созданные таким образом домашние директории сохраняются и после выхода пользователя. Кстати, если вы хотите, чтобы каждый подключившийся пользователь имел в своей папке инструкцию или что-либо еще, вы можете разместить это в /etc/skel.

И вот теперь… вы все еще не можете залогиниться, поскольку видите нечто вроде этого:

Как сменить имя пользователя, если поля для его ввода просто нет, а среди перечисленных вариантов есть только локальные учетные записи? Для этого создайте файл /etc/lightdm/lightdm.conf.d/50-user-config.conf и поместите в него следующее:

После следующей загрузки на экране приветствия появится поле для логина.

Введите сюда имя пользователя, созданного на контроллере домена, а затем и пароль. Давайте посмотрим в домашнюю директорию. Кроме стандартных папок и файлов здесь присутствует и файл, который я предварительно поместил в /etc/skel.

Оболочка командной строки и домашние директории для пользователей домена.

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

/home/имя_домена/имя_пользователя

Если сеть имеет сложную структуру и большое количество пользователей, это очень удобно. Такая структура позволяет избежать хаоса, а кроме того — не допустит проблем при совпадении имен пользователей разных доменов.

Но вы можете создать собственную структуру.

Кроме обычных названий папок можно использовать переменные:

%D название домена
%U имя пользователя
%N имя сервера домашних директорий

Например, вариант, используемый по умолчанию (приведен выше), записывается так:

/home/%D/%U

В качестве оболочки командной строки по умолчанию используется /bin/false. На практике это означает, что подключившийся пользователь домена в принципе не будет иметь доступа к командной строке. Если точнее, он будет автоматически выброшен из нее сразу же после входа. Даже если вы попробуете залогиниться в командной строке, ничего не выйдет. Это поведение можно изменить, указав в качестве оболочки командной строки bash. Добавьте в /etc/samba/smb.conf:

Имейте в виду, что это затронет всех пользователей контроллера. Каждый из них теперь получит доступ к командной строке, а заодно — и возможность входить без графического интерфейса.

  • Инна

    Сайт стал для сисадминов??? Раньше тут была информация для новичков, как я, а теперь тут такие сложности в основном. Зачем оно нужно нам, «простым смертным»? Удаляю сайт из закладок… а жаль, хороший был сайт.

    • Edward Kobylyanets

      Некоторые статьи для новичков, некоторые для более опытных пользователей. Так было и так будет дальше.