Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:ввод_в_домен_windows [2011/07/12 19:14] [Настройка Samba и вход в домен] |
wiki:ввод_в_домен_windows [2016/06/02 11:59] (текущий) [Добавление Winbind в качестве источника пользователей и групп] |
||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| ===== Введение ===== | ===== Введение ===== | ||
| - | Зачастую возникает необходимость ввести Linux машину в существующий домен Windows. Например, чтобы сделать файловый сервер с помощью Samba. Сделать это очень просто, для этого вам понадобятся клиент Kerberos, Samba и Winbind. | + | Зачастую возникает необходимость ввести Linux-машину в существующий домен Windows. Например, чтобы сделать файловый сервер с помощью Samba. Сделать это очень просто, для этого вам понадобятся клиент Kerberos, Samba и Winbind. |
| Перед установкой желательно обновиться: | Перед установкой желательно обновиться: | ||
| sudo aptitude update | sudo aptitude update | ||
| sudo aptitude upgrade | sudo aptitude upgrade | ||
| - | |||
| Установить всё это добро можно командой: | Установить всё это добро можно командой: | ||
| - | sudo aptitude install krb5-user samba winbind | + | sudo aptitude install krb5-user samba winbind |
| - | + | ||
| + | Также может понадобиться установить следующие библиотеки: | ||
| + | |||
| + | sudo aptitude install libpam-krb5 libpam-winbind libnss-winbind | ||
| Либо, если вы используете Ubuntu Desktop, те же пакеты можно поставить через менеджер пакетов Synaptic. | Либо, если вы используете Ubuntu Desktop, те же пакеты можно поставить через менеджер пакетов Synaptic. | ||
| Строка 21: | Строка 24: | ||
| Для начала необходимо изменить настройки DNS на вашей машине, прописав в качестве DNS сервера доменконтроллер((Конечно, если ваша сеть не настроена так, что DNS сервер домена не совпадает с доменконтроллером. Кроме того, если у вас есть несколько DNS серверов, то стоит прописать их все.)) и в качестве домена поиска - нужный домен. | Для начала необходимо изменить настройки DNS на вашей машине, прописав в качестве DNS сервера доменконтроллер((Конечно, если ваша сеть не настроена так, что DNS сервер домена не совпадает с доменконтроллером. Кроме того, если у вас есть несколько DNS серверов, то стоит прописать их все.)) и в качестве домена поиска - нужный домен. | ||
| - | В Ubuntu Desktop это можно сделать через [[Network Manager]], в Ubuntu Server необходимо изменить содержимое файла ''/etc/resolv.conf'' на примерно такое: | + | Если у вас статический IP-адрес, то в Ubuntu Desktop это можно сделать через [[Network Manager]], в Ubuntu Server необходимо изменить содержимое файла ''/etc/resolv.conf'' на примерно такое: |
| <file> | <file> | ||
| Строка 30: | Строка 33: | ||
| </file> | </file> | ||
| - | <note tip>Если ip адрес присваивается DHCP сервером то после перезагрузки resolv.conf перезапишется. | + | В современных дистрибутивах файл resolv.conf создается автоматически и править вручную его не нужно. |
| - | Если нужно оставить получение адресов с помощью DHCP, но формируется "неправильный" resolv.conf' , например присутствует только | + | Для получение нужного результата нужно добавить необходимые изменения в файл: ''/etc/resolvconf/resolv.conf.d/head'' |
| - | один nameserver 192.168.0.1 ,и не указаны domain, и search, то проще всего отредактировать /etc/dhcp/dhclient.conf | + | Данные которые будут добавлены в него, будут автоматически вставлены в файл ''/etc/resolv.conf'' |
| - | Чтобы появились записи domain и search нужно убрать комментарий перед строкой supersede domain-name, и вписать свой домен: | + | |
| + | Если IP-адрес динамический и присваивается DHCP сервером то после перезагрузки resolv.conf может формироваться "неправильный" resolv.conf' , например присутствует только один nameserver 192.168.0.1 и не указаны domain и search. Нужно отредактировать ''/etc/dhcp/dhclient.conf''. Чтобы появились записи domain и search нужно убрать комментарий перед строкой supersede domain-name, и вписать свой домен: | ||
| <file> | <file> | ||
| supersede domain-name "domain.com"; | supersede domain-name "domain.com"; | ||
| </file> | </file> | ||
| + | |||
| Чтобы добавить еще один nameserver нужно убрать комментарий перед prepend domain-name-servers и указать ip сервера: | Чтобы добавить еще один nameserver нужно убрать комментарий перед prepend domain-name-servers и указать ip сервера: | ||
| + | |||
| <file> | <file> | ||
| prepend domain-name-servers 192.168.0.2; | prepend domain-name-servers 192.168.0.2; | ||
| </file> | </file> | ||
| - | </note> | + | |
| + | Для применения изменений остается перезапустить службу: | ||
| + | |||
| + | /etc/init.d/networking restart | ||
| + | | ||
| Теперь убедитесь, что вы задали нужное имя компьютера в файле ''/etc/hostname'': | Теперь убедитесь, что вы задали нужное имя компьютера в файле ''/etc/hostname'': | ||
| Строка 57: | Строка 68: | ||
| </file> | </file> | ||
| - | Если вы что-то поменяете - перезагрузите компьютер для применения изменений: | + | Сразу нужно проверить что нормально пингуется наш контроллер домена, по короткому и полному имени, чтобы в будушем не получать ошибки что контроллер домена не найден: |
| - | <file> | + | ping dc |
| - | sudo init 6 | + | ping dc.domain.com |
| - | </file> | + | |
| + | Не обязательно, но если вы что-то поменяете - перезагрузите компьютер для применения изменений. | ||
| ===== Настройка синхронизации времени ===== | ===== Настройка синхронизации времени ===== | ||
| - | Далее необходимо настроить синхронизацию времени с доменконтроллером. Тк если разница будет более 5 минут мы не сможем получить лист от Kerberos. | + | Далее необходимо настроить синхронизацию времени с доменконтроллером. Если разница будет более 5 минут мы не сможем получить лист от Kerberos. |
| - | Для единовременной синхронизации можно воспользоваться коммандой: | + | Для единовременной синхронизации можно воспользоваться командой: |
| sudo net time set dc | sudo net time set dc | ||
| - | Автоматическая синхронизация настраивается с помощью ''ntpd'', это демон будет периодически выполнять синхронизацию. Для начала его необходимо установить: | + | Если в сети существует сервер точного времени, то можно воспользоваться им или любым публичным: |
| + | |||
| + | ntpdate ntp.mobatime.ru | ||
| + | |||
| + | Автоматическая же синхронизация настраивается с помощью ''ntpd'', это демон будет периодически выполнять синхронизацию. Для начала его необходимо установить: | ||
| sudo aptitude install ntp | sudo aptitude install ntp | ||
| - | + | ||
| Теперь исправьте файл ''/etc/ntp.conf'', добавив в него информацию о вашем сервере времени: | Теперь исправьте файл ''/etc/ntp.conf'', добавив в него информацию о вашем сервере времени: | ||
| <file> | <file> | ||
| - | # ... | ||
| - | |||
| # You do need to talk to an NTP server or two (or three). | # You do need to talk to an NTP server or two (or three). | ||
| server dc.domain.com | server dc.domain.com | ||
| - | |||
| - | # ... | ||
| </file> | </file> | ||
| Строка 94: | Строка 105: | ||
| ===== Настройка авторизации через Kerberos ===== | ===== Настройка авторизации через Kerberos ===== | ||
| - | Начнём с настройки авторизации в домене через протокол Kerberos. Вам потребуется изменить файл ''/etc/krb5.conf''. | + | Начнём с настройки авторизации в домене через протокол Kerberos. Вам потребуется изменить файл ''/etc/krb5.conf''. В общем случае он выглядит так: |
| - | Минимальная конфигурация для получения листа: | + | |
| - | + | ||
| - | <file> | + | |
| - | [libdefaults] | + | |
| - | default_realm = DOMAIN.COM | + | |
| - | </file> | + | |
| - | + | ||
| - | + | ||
| - | У меня он выглядит так: | + | |
| <file> | <file> | ||
| Строка 112: | Строка 114: | ||
| forwardable = true | forwardable = true | ||
| proxiable = true | proxiable = true | ||
| + | v4_instance_resolve = false | ||
| + | v4_name_convert = { | ||
| + | host = { | ||
| + | rcmd = host | ||
| + | ftp = ftp | ||
| + | } | ||
| + | plain = { | ||
| + | something = something-else | ||
| + | } | ||
| + | } | ||
| + | fcc-mit-ticketflags = true | ||
| [realms] | [realms] | ||
| Строка 130: | Строка 143: | ||
| </file> | </file> | ||
| - | Вам конечно нужно изменить ''domain.com'' на ваш домен и ''dc'' и ''dc2'' на ваши доменконтроллеры. Кстати, возможно вам понадобится написать полные имена доменконтроллеров, т.е. в моём случае ''dc.domain.com'' и ''dc2.domain.com''. Поскольку у меня прописан домен поиска в DNS, то мне это делать не нужно. | + | Вам, конечно, нужно изменить ''domain.com'' на ваш домен и ''dc'' и ''dc2'' на ваши доменконтроллеры. Кстати, возможно вам понадобится написать полные имена доменконтроллеров ''dc.domain.com'' и ''dc2.domain.com''. Поскольку у меня прописан домен поиска в DNS, то мне это делать не нужно. |
| <note important>Обратите особое внимание на регистр написания имени домена - везде, где домен написан в верхнем регистре, его обязательно нужно писать именно в верхнем регистре. Иначе волшебным образом ничего может не заработать.</note> | <note important>Обратите особое внимание на регистр написания имени домена - везде, где домен написан в верхнем регистре, его обязательно нужно писать именно в верхнем регистре. Иначе волшебным образом ничего может не заработать.</note> | ||
| - | Это далеко не все возможные опции настройки Kerberos, только самые основные. Однако их обычно достаточно. | + | Это не все возможные опции настройки Kerberos, только основные. Однако их обычно достаточно. |
| Теперь настало время проверить, что мы можем авторизоваться в домене. Для этого выполните команду | Теперь настало время проверить, что мы можем авторизоваться в домене. Для этого выполните команду | ||
| kinit username@DOMAIN.COM | kinit username@DOMAIN.COM | ||
| - | |||
| - | Если домен один, или нужно получить лист для домена по умолчанию достаточно набрать: | ||
| - | kinit username | ||
| - | | ||
| Вместо username естественно стоит вписать имя существующего пользователя домена. | Вместо username естественно стоит вписать имя существующего пользователя домена. | ||
| Строка 153: | Строка 162: | ||
| klist | klist | ||
| - | + | ||
| Удалить все билеты (они вам вообще говоря не нужны) можно командой | Удалить все билеты (они вам вообще говоря не нужны) можно командой | ||
| kdestroy | kdestroy | ||
| - | + | ||
| Итак, будем считать, что авторизацию вы настроили, пора настроить непосредственно вход в домен, об этом после списка распространённых ошибок ''kinit''. | Итак, будем считать, что авторизацию вы настроили, пора настроить непосредственно вход в домен, об этом после списка распространённых ошибок ''kinit''. | ||
| - | | + | |
| ==== Распространённые ошибки kinit ==== | ==== Распространённые ошибки kinit ==== | ||
| Строка 165: | Строка 174: | ||
| kinit(v5): Clock skew too great while getting initial credentials | kinit(v5): Clock skew too great while getting initial credentials | ||
| </file> | </file> | ||
| - | Это значит, у вашего компьютера не синхронизировано время с доменконтроллером (см. выше) | + | Это значит, что у вашего компьютера не синхронизировано время с доменконтроллером (см. выше). |
| - | <file> | + | <file> |
| kinit(v5): Preauthentication failed while getting initial credentials | kinit(v5): Preauthentication failed while getting initial credentials | ||
| </file> | </file> | ||
| Строка 192: | Строка 201: | ||
| ===== Настройка Samba и вход в домен ===== | ===== Настройка Samba и вход в домен ===== | ||
| - | Для того, чтобы войти в домен, необходимо прописать правильные настройки в файле ''/etc/samba/smb.conf''. На данном этапе вас должны интересовать только некоторые опции из секции ''[global]''. Ниже - пример части конфига Samba с комментариями по поводу значения важных параметров: | + | Для того, чтобы войти в домен, необходимо прописать правильные настройки в файле ''/etc/samba/smb.conf''. На данном этапе вас должны интересовать только некоторые опции из секции ''[global]''. Ниже - пример части файла конфигурации Samba с комментариями по поводу значения важных параметров: |
| - | + | ||
| - | Минимальная конфигурация для входа в домен буквально 4 строки, будет выглядеть так: | + | |
| - | <file> | + | |
| - | [global] | + | |
| - | workgroup = DOMAIN | + | |
| - | realm = DOMAIN.COM | + | |
| - | security = ADS | + | |
| - | </file> | + | |
| - | + | ||
| - | Пример с указанием дополнительных параметров, и их описанием: | + | |
| <file> | <file> | ||
| Строка 216: | Строка 215: | ||
| # Просто важные | # Просто важные | ||
| dns proxy = no | dns proxy = no | ||
| - | socket options = TCP_NODELAY # Маожно не указывать, тк совпадает с значением по умолчанию | + | socket options = TCP_NODELAY |
| # Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе, | # Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе, | ||
| # или даже стать доменконтроллером, то всегда прописывайте эти пять опций именно в таком виде | # или даже стать доменконтроллером, то всегда прописывайте эти пять опций именно в таком виде | ||
| - | domain master = no # по умолчанию domain master = auto | + | domain master = no |
| - | local master = no # по умолчанию local master = yes | + | local master = no |
| - | preferred master = no # preferred master = auto | + | preferred master = no |
| - | os level = 0 # по умолчанию os level = 20 | + | os level = 0 |
| - | domain logons = no # Можно не указывать явно , тк по умолчанию domain logons = no | + | domain logons = no |
| # Отключить поддержку принтеров | # Отключить поддержку принтеров | ||
| Строка 236: | Строка 235: | ||
| testparm | testparm | ||
| - | + | ||
| - | Она проверит ваш конфиг на ошибки и выдаст суммарную сводку о нём: | + | Она проверит вашу конфигурацию на ошибки и выдаст суммарную сводку о нём: |
| <code> | <code> | ||
| Строка 247: | Строка 246: | ||
| </code> | </code> | ||
| - | Как видно мы задали правильные параметры для того, чтобы наш компьютер стал членом домена. Теперь пора попытаться непосредственно войти в домен. Для этого введите команду | + | Как видно мы задали правильные параметры для того, чтобы наш компьютер стал членом домена. Теперь пора попытаться непосредственно войти в домен. Для этого введите команду: |
| - | sudo net ads join -U username -D DOMAIN | + | net ads join -U username -D DOMAIN |
| - | + | ||
| - | В AD часто используется OU (Organizational Unit), есть в корне домена OU = Office, в нем OU = Cabinet чтобы сразу добавить в нужный можно указать так: | + | |
| - | sudo net ads join -U username -D DOMAIN createcomputer="Office/Cabinet" | + | И в случае успеха вы увидите что-то похожее на: |
| - | + | ||
| - | Вместо ''username'' необходимо подставить имя какого-нибудь администратора домена, вместо ''DOMAIN'' - собственно сам домен((Иногда домен можно и не указывать, но лучше всё же это всегда делать - хуже не будет.)). У вас спросят пароль для введённого пользователя и в случае успеха вы увидите что-то похожее на: | + | |
| <code> | <code> | ||
| Строка 264: | Строка 259: | ||
| </code> | </code> | ||
| - | Если больше никаких сообщений нет - значит всё хорошо. Попробуйте попинговать свой компьютер по имени с другого члена домена, чтобы убедиться, что в домене всё прописалось так, как надо. | + | ==== Используемые параметры команды net ==== |
| - | Но иногда после сообщения о присоединении к домену выдаётся ошибка наподобие: | + | ''-U username%password'': Обязательный параметр, вместо ''username'' необходимо подставить имя пользователя с правами администратора домена, и указать пароль. |
| - | <code> | + | ''-D DOMAIN'': ''DOMAIN'' - собственно сам домен, домен можно и не указывать, но лучше всё же это всегда делать - хуже не будет. |
| - | DNS update failed! | + | |
| - | </code> | + | |
| - | <note>Решение данной проблемы на Ubuntu Server 10.10 amd64 (у 10.04 amd64 была похожая проблема) | + | ''-S win_domain_controller'': ''win_domain_controller'', можно не указывать, но бывают случаи когда автоматически сервер не находит контроллер домена. |
| - | Последовательность моих исследований такая(тк сервера виртуальные с помощью Snapshot достаточно быстро докопался до истины): | + | |
| - | 1) На другом сервере Ubuntu Server 11.04 amd64 с такими же конфигами все заработало, следовательно проблема с АД отпала, сомнения что я ошибся набирая очередной конфиг исчезли. | + | ''createcomputer="OU/OU/..." '': В AD часто используется OU (Organizational Unit), есть в корне домена OU = Office, в нем OU = Cabinet, чтобы сразу добавить в нужный можно указать так: sudo net ads join -U username createcomputer="Office/Cabinet". |
| - | 2) Ради эксперимента попробовал Ubuntu Server 10.10 amd64 обновить до Ubuntu Server 11.04 amd64, делаю Snapshot, обновляюсь, и все заработало! | + | Если больше никаких сообщений нет - значит всё хорошо. Попробуйте попинговать свой компьютер по имени с другого члена домена, чтобы убедиться, что в домене всё прописалось так, как надо. |
| - | 3) Решил что ради самбы обновлять весь дистрибутив смысла нет, делаю откат до предидущего Snapshot, я скачал с репозитариев исходники и собрал deb пакеты самбы, потом их успешно установил (rules не менял) и все отлично заработало, вывод что в Ubuntu Server 10.10 amd64 самба пакеты собраны как то криво. | + | Так же можно набрать команду: |
| - | 4) Сохранил получившиеся deb пакеты на другом сервере, откатился на предидущий Snapshot, установил deb пакеты, все отлично работает</note> | + | net ads testjoin |
| + | |||
| + | Если все хорошо, можно увидеть: | ||
| + | |||
| + | <code> | ||
| + | #net ads testjoin | ||
| + | Join is OK | ||
| + | </code> | ||
| + | |||
| + | Но иногда после сообщения о присоединении к домену выдаётся ошибка наподобие((Пользователю mag_box2 удалось решить эту проблему таким [[http://forum.ubuntu.ru/index.php?topic=106391.msg1202562#msg1202562|способом]].)): | ||
| + | |||
| + | <code> | ||
| + | DNS update failed! | ||
| + | </code> | ||
| Это не очень хорошо, и в этом случае рекомендуется ещё раз прочитать раздел про настройку DNS чуть выше и понять, что же вы сделали не так. После этого нужно удалить компьютер из домена и попытаться ввести его заново. Если вы твердо уверены, что всё настроили верно, а DNS всё равно не обновляется, то можно внести вручную запись для вашего компьютера на ваш DNS сервер и всё будет работать. Конечно, если нет никаких других ошибок, и вы успешно вошли в домен. Однако лучше всё же разберитесь, почему DNS не обновляется автоматически. Это может быть связано не только с вашим компьютером, но и с некорректной настройкой AD. | Это не очень хорошо, и в этом случае рекомендуется ещё раз прочитать раздел про настройку DNS чуть выше и понять, что же вы сделали не так. После этого нужно удалить компьютер из домена и попытаться ввести его заново. Если вы твердо уверены, что всё настроили верно, а DNS всё равно не обновляется, то можно внести вручную запись для вашего компьютера на ваш DNS сервер и всё будет работать. Конечно, если нет никаких других ошибок, и вы успешно вошли в домен. Однако лучше всё же разберитесь, почему DNS не обновляется автоматически. Это может быть связано не только с вашим компьютером, но и с некорректной настройкой AD. | ||
| Строка 322: | Строка 327: | ||
| # Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку | # Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку | ||
| winbind refresh tickets = yes | winbind refresh tickets = yes | ||
| - | # Для возможности оффлайн-авторизации при недоступности доменконтроллера необходимо вписать | ||
| - | winbind offline logon = yes | ||
| - | # Период кэширования учетных записей, по умолчанию равен 300 секунд | ||
| - | winbind cache time = 1440 | ||
| </file> | </file> | ||
| - | Просмотрите конфиг самбы, полный минимально рабочий конфиг будет таким: | + | <note important>Параметры : |
| - | <file> | + | |
| - | [global] | + | |
| - | workgroup = DOMAIN | + | |
| - | realm = DOMAIN.COM | + | |
| - | security = ADS | + | |
| - | idmap uid = 10000 - 40000 | + | |
| - | idmap gid = 10000 - 40000 | + | |
| - | winbind enum groups = yes | + | |
| - | winbind enum users = yes | + | |
| - | winbind use default domain = yes | + | |
| - | template shell = /bin/bash | + | |
| - | winbind refresh tickets = yes | + | |
| - | </file> | + | |
| - | После внесения изменений нужно набрать: | + | idmap uid = 10000 - 40000 |
| - | <file> | + | idmap gid = 10000 - 40000 |
| - | testparm | + | |
| - | </file> | + | |
| - | И убедиться что ошибок нет. | + | в новых версиях Samba уже устарели и при проверке конфига самбы с помощью testparm |
| - | + | будет выдваться предупреждение: | |
| - | Теперь перезапустите демон Winbind и Samba, в следующем порядке: | + | |
| + | WARNING: The "idmap uid" option is deprecated | ||
| + | |||
| + | WARNING: The "idmap gid" option is deprecated | ||
| + | |||
| + | Чтобы убрать предупреждения нужно заменить эти строки на новые: | ||
| + | |||
| + | idmap config * : range = 10000-20000 | ||
| + | |||
| + | idmap config * : backend = tdb</note> | ||
| + | |||
| + | Теперь перезапустите демон Winbind и Samba в следующем порядке: | ||
| sudo /etc/init.d/winbind stop | sudo /etc/init.d/winbind stop | ||
| sudo smbd restart | sudo smbd restart | ||
| sudo /etc/init.d/winbind start | sudo /etc/init.d/winbind start | ||
| + | |||
| + | Запускаем | ||
| + | sudo testparm | ||
| + | |||
| + | Смотрим есть ли ошибки или предупреждения, если появится: | ||
| + | |||
| + | "rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)" | ||
| + | |||
| + | Без перезагрузки можно устранить так: | ||
| + | ulimit -n 16384 | ||
| + | |||
| + | Для сохранения после перезагрузки отредактировать файл /etc/security/limits.conf | ||
| + | | ||
| + | # Добавить в конец файла строки: | ||
| + | * - nofile 16384 | ||
| + | root - nofile 16384 | ||
| После перезапуска проверьте, что Winbind установил доверительные отношения с AD командой: | После перезапуска проверьте, что Winbind установил доверительные отношения с AD командой: | ||
| Строка 362: | Строка 375: | ||
| checking the trust secret for domain DCN via RPC calls succeeded | checking the trust secret for domain DCN via RPC calls succeeded | ||
| - | А так же, что Winbind увидел пользователей и группы из AD командами: | + | А так же, что Winbind увидел пользователей и группы из AD командами((Если пользователей домена очень много, то команды будут выполняться тоже очень долго.)): |
| wbinfo -u | wbinfo -u | ||
| Строка 370: | Строка 383: | ||
| Итак, Winbind работает, однако в систему он ещё не интегрирован. | Итак, Winbind работает, однако в систему он ещё не интегрирован. | ||
| - | |||
| ===== Добавление Winbind в качестве источника пользователей и групп ===== | ===== Добавление Winbind в качестве источника пользователей и групп ===== | ||
| Строка 388: | Строка 400: | ||
| group: compat winbind | group: compat winbind | ||
| </file> | </file> | ||
| + | |||
| + | также рекомендую привести строку files в файле ''/etc/nsswitch.conf'' к виду: | ||
| + | |||
| + | <file> | ||
| + | files: dns mdns4_minimal[NotFoud=return] mdns4 | ||
| + | </file> | ||
| + | |||
| + | <note important>ubuntu server 14.04, файл ''/etc/nsswitch.conf'' не содержал строку | ||
| + | "files: dns mdns4_minimal[NotFoud=return] mdns4" | ||
| + | вместо неё было: | ||
| + | "hosts: files mdns4_minimal [NOTFOUND=return] dns wins" | ||
| + | Которую я преобразовал в: | ||
| + | "hosts: dns mdns4_minimal[NotFoud=return] mdns4 files" | ||
| + | после чего всё заработало | ||
| + | </note> | ||
| Теперь проверьте, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив | Теперь проверьте, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив | ||
| Строка 397: | Строка 424: | ||
| Теперь вы можете взять любого пользователя домена и сделать его, например, владельцем какого-нибудь файла. | Теперь вы можете взять любого пользователя домена и сделать его, например, владельцем какого-нибудь файла. | ||
| - | |||
| ===== Авторизация в Ubuntu через пользователей домена ===== | ===== Авторизация в Ubuntu через пользователей домена ===== | ||
| Несмотря на то, что все пользователи домена фактически стали полноценными пользователями системы (в чём можно убедиться, выполнив последние две команды из предыдущего раздела), зайти ни под кем из них в систему всё ещё нельзя. Для включения возможности авторизации пользователей домена на компьютере с Ubuntu необходимо настроить PAM на работу с Winbind. | Несмотря на то, что все пользователи домена фактически стали полноценными пользователями системы (в чём можно убедиться, выполнив последние две команды из предыдущего раздела), зайти ни под кем из них в систему всё ещё нельзя. Для включения возможности авторизации пользователей домена на компьютере с Ubuntu необходимо настроить PAM на работу с Winbind. | ||
| + | |||
| + | ==== Он-лайн авторизация ==== | ||
| Для **Ubuntu 10.04 и выше** добавьте всего одну строку в файле ''/etc/pam.d/common-session'', т.к. PAM и так неплохо справляется с авторизацией: | Для **Ubuntu 10.04 и выше** добавьте всего одну строку в файле ''/etc/pam.d/common-session'', т.к. PAM и так неплохо справляется с авторизацией: | ||
| Строка 406: | Строка 434: | ||
| <file> | <file> | ||
| session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077 | session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077 | ||
| + | </file> | ||
| + | |||
| + | Для **Ubuntu 13.10** чтобы появилось поле ручного ввода логина необходимо в любой файл из папки ''/etc/lightdm/lightdm.conf/'' снизу добавить строку: | ||
| + | |||
| + | <file> | ||
| + | greeter-show-manual-login=true | ||
| </file> | </file> | ||
| Для **Ubuntu 9.10 и ниже** придется редактировать несколько файлов (но никто не запрещает использовать этот способ и в 10.04 - он тоже работает): | Для **Ubuntu 9.10 и ниже** придется редактировать несколько файлов (но никто не запрещает использовать этот способ и в 10.04 - он тоже работает): | ||
| + | |||
| <note important>Последовательность строк в файлах имеет значение! </note> | <note important>Последовательность строк в файлах имеет значение! </note> | ||
| Строка 442: | Строка 477: | ||
| И, наконец, необходимо перенести запуск Winbind при загрузке системы после всех остальных служб (по умолчанию он запускается с индексом 20). Для этого в терминале выполните следующую команду: | И, наконец, необходимо перенести запуск Winbind при загрузке системы после всех остальных служб (по умолчанию он запускается с индексом 20). Для этого в терминале выполните следующую команду: | ||
| - | <file> | + | |
| - | sudo bash -c "for i in 2 3 4 5; do mv /etc/rc$i.d/S20winbind /etc/rc$i.d/S99winbind; done" | + | sudo bash -c "for i in 2 3 4 5; do mv /etc/rc$i.d/S20winbind /etc/rc$i.d/S99winbind; done" |
| - | </file> | + | |
| Что эквивалентно запуску для каждого уровня (в примере - 4) команды: | Что эквивалентно запуску для каждого уровня (в примере - 4) команды: | ||
| mv /etc/rc4.d/S20winbind /etc/rc4.d/S99winbind | mv /etc/rc4.d/S20winbind /etc/rc4.d/S99winbind | ||
| + | | ||
| + | <note important>В некоторых случаях winbind может иметь иной уровень запуска (например, S02winbind). Поэтому сначала проверьте имена файлов, вполнив команду "ls /etc/rc{2,3,4,5}.d/ | grep winbind" (без кавычек).</note> | ||
| Готово, все настройки завершены. Перезагружайтесь и пытайтесь войти с учетной записью пользователя домена. | Готово, все настройки завершены. Перезагружайтесь и пытайтесь войти с учетной записью пользователя домена. | ||
| + | |||
| + | ==== Офф-лайн авторизация ==== | ||
| + | |||
| + | Часто возникает ситуация, когда домен-контроллер недоступен по различным причинам — профилактика, отключение света или вы принесли ноутбук домой и хотите поработать. В этом случае для Winbind можно настроить кэширование учетных записей пользователей домена. Для этого необходимо сделать следующее. | ||
| + | Добавьте в секцию ''[global]'' файла ''/etc/samba/smb.conf'' следующие строки: | ||
| + | |||
| + | <file> | ||
| + | [global] | ||
| + | # Возможность оффлайн-авторизации при недоступности доменконтроллера | ||
| + | winbind offline logon = yes | ||
| + | # Период кэширования учетных записей, по умолчанию равен 300 секунд | ||
| + | winbind cache time = 300 | ||
| + | # Необязательная настройка, но избавляет от нудных пауз, указываем контроллер домена dc, | ||
| + | # можно указать и ip, но это является плохим тоном | ||
| + | password server = dc | ||
| + | </file> | ||
| + | |||
| + | Обычно этого достаточно. Если же возникают ошибки, то необходимо создать файл ''/etc/security/pam_winbind.conf'' со следующим содержанием((По мотивам man smb.conf и [[http://forum.ubuntu.ru/index.php?topic=163264.0;topicseen|темы форума]])): | ||
| + | |||
| + | <note warning>Внимание! При использовании советов ниже может возникать совершенно случайная ошибка "Сбой аутентификации"! Поэтому все что Вы делаете, Вы делаете на свой страх и риск!</note> | ||
| + | |||
| + | <file> | ||
| + | # | ||
| + | # pam_winbind configuration file | ||
| + | # | ||
| + | # /etc/security/pam_winbind.conf | ||
| + | # | ||
| + | [global] | ||
| + | # turn on debugging | ||
| + | debug = no | ||
| + | # request a cached login if possible | ||
| + | # (needs "winbind offline logon = yes" in smb.conf) | ||
| + | cached_login = yes | ||
| + | # authenticate using kerberos | ||
| + | krb5_auth = yes | ||
| + | # when using kerberos, request a "FILE" krb5 credential cache type | ||
| + | # (leave empty to just do krb5 authentication but not have a ticket | ||
| + | # afterwards) | ||
| + | krb5_ccache_type = FILE | ||
| + | # make successful authentication dependend on membership of one SID | ||
| + | # (can also take a name) | ||
| + | ;require_membership_of = | ||
| + | silent = yes | ||
| + | </file> | ||
| + | |||
| + | Файл ''/etc/pam.d/gnome-screensaver'' в таком случае принимает вид: | ||
| + | |||
| + | <file> | ||
| + | auth sufficient pam_unix.so nullok_secure | ||
| + | auth sufficient pam_winbind.so use_first_pass | ||
| + | auth required pam_deny.so | ||
| + | </file> | ||
| + | |||
| + | А также изменяется файл ''/etc/pam.d/common-auth'': | ||
| + | |||
| + | <file> | ||
| + | auth optional pam_group.so | ||
| + | auth sufficient pam_unix.so nullok_secure use_first_pass | ||
| + | auth sufficient pam_winbind.so use_first_pass | ||
| + | auth required pam_deny.so | ||
| + | </file> | ||
| + | |||
| + | |||
| ===== Ссылки ===== | ===== Ссылки ===== | ||
| Строка 458: | Строка 557: | ||
| {{tag> HOWTO Администрирование Samba Kerberos Krb Winbind AD Файловый_сервер}} | {{tag> HOWTO Администрирование Samba Kerberos Krb Winbind AD Файловый_сервер}} | ||
| - | |||