У меня есть новая установка 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.