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

Почему Samba игнорирует мою настройку шаблона shell = / bin / bash?

У меня есть новая установка CentOS minimal, и я установил Samba следующим образом:

yum install krb5-workstation samba

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

libtalloc libtdb samba-common samba-winbind samba-winbind-clients

В моем smb.conf есть строки:

template shell = /bin/bash
template homedir = /home/%D/%U

Я присоединился к домену с:

net ads join -U <admin>

Теперь я могу использовать getent passwd и видеть пользователей AD, а также локальных пользователей, но все учетные записи AD имеют оболочку, указанную как /bin/false. У них правильно есть домашние каталоги, так как /home/<DOMAIN>/<username>, хотя.

Что могло быть причиной такого поведения? Все пользователи AD в настоящее время выходят из системы при аутентификации!

С помощью testparm Я обнаружил, что это произошло из-за попытки указать символ разделителя Winbind как \\ - в попытке заставить его использовать стандартную обратную косую черту, которую использует Windows.

Из-за разбора smb.conf, который интерпретируется как продолжение строки, поэтому строка после разделителя рассматривается как конец этой директивы и поэтому игнорируется! При размещении шаблона homedir первым, Samba его игнорировала, а при размещении сначала оболочки шаблона Samba игнорировала эту команду.

Поскольку одиночная обратная косая черта является разделителем по умолчанию для Winbind, я удалил разделительную линию, и теперь обе директивы шаблона работают.

Это зависит от того, какой тип серверной части вы используете. Порядок не имеет значения, но ваши шаблоны будут применяться только в том случае, если вы используете бэкенды на основе шаблонов, такие как idmap_rid.