|
|
Строка 6: |
Строка 6: |
| '''Внимание!''' Данная инструкция позволяет настроить Samba в качестве NT Domain для аутентификации Windows XP. Использование Samba в качестве замены Active Direcory возможно после появления стабильной версии Samba 4.</div> | | '''Внимание!''' Данная инструкция позволяет настроить Samba в качестве NT Domain для аутентификации Windows XP. Использование Samba в качестве замены Active Direcory возможно после появления стабильной версии Samba 4.</div> |
| | | |
- | Предполагается, что [[Домен|домен ALT Linux]] создан должным образом и работает.
| + | = Настройка на сервере = |
| | | |
- | = Настройка сервера =
| + | Создайте домен в модуле «Домен» (доступно с {{prg|alterator-net-domain-0.4-alt13}}). |
- | | + | |
- | 1. В секции {{term|[global]}} файла {{path|/etc/samba/smb.conf}} добавьте:
| + | |
- | <source lang="ini">
| + | |
- | local master = yes
| + | |
- | preferred master = yes
| + | |
- | domain master = yes
| + | |
- | domain logons = yes
| + | |
- | add user script = /usr/sbin/ldap-useradd "%u"
| + | |
- | delete user script = /usr/sbin/ldap-userdel "%u"
| + | |
- | add group script = /usr/sbin/ldap-groupadd -p "%g"
| + | |
- | delete group script = /usr/sbin/ldap-userdel "%g"
| + | |
- | add user to group script = /usr/sbin/ldap-groupmod -m "%u" "%g"
| + | |
- | delete user from group script = /usr/sbin/ldap-groupmod -x "%u" "%g"
| + | |
- | set primary group script = /usr/sbin/ldap-usermod -g "%g" "%u"
| + | |
- | add machine script = /usr/sbin/ldap-useradd -w -i "%u"
| + | |
- | ldap machine suffix = ou=Computers
| + | |
- | encrypt passwords = yes
| + | |
- | ldap delete dn = no</source>
| + | |
- | | + | |
- | Внимание! При использовании домена в Windows будет использоваться имя рабочей группы '''WORKGROUP''' (параметр {{term|workgroup}} в /etc/samba/smb.conf). Вы можете поменять его на имя ALT-домена:
| + | |
- | <source lang=Bash>SMBDOMAIN="$(system-auth status | cut -f2 -d' ' | sed -e 's/dc=//g;s/,/./g;s/\(.*\)/\U\1/')"
| + | |
- | sed -i "/^[global]$/a workgroup = ${SMBDOMAIN}" /etc/samba/smb.conf</source>
| + | |
| | | |
| <div style="border: 1px solid red;padding: 5px"> | | <div style="border: 1px solid red;padding: 5px"> |
- | '''Внимание!''' Во избежание проблем с вводом Windows имя рабочей группы нужно делать ''не более 15 символов''[http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name].</div> | + | '''Внимание!''' Во избежание проблем с вводом Windows имя домена нужно делать ''не более 15 символов''[http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name].</div> |
| | | |
- | Если хотите автоматически подключать общую папку (ресурс {{term|share}} на сервере как диск {{term|S:}}), то выполните следующее:
| + | = Настройка на клиенте = |
- | <source lang=Bash>echo "net use s: \\\\$(hostname -s)\share" | sed 's/$/\r/' > /etc/samba/netlogon.bat
| + | |
- | sed -i "/^[global]$/a logon script = /etc/samba/netlogon.bat" /etc/samba/smb.conf</source>
| + | |
| | | |
- | 2. Перезапустите службу smb и запустите службу nmb:
| + | {{todo|Требуется инструкция со снимками экрана}} |
- | service smb restart
| + | |
- | service nmb start
| + | |
| | | |
- | Службу nmb нужно добавить в автоматический запуск:
| + | = Известные проблемы = |
- | chkconfig nmb on
| + | * Автоматически не подключается ресурс {{path|share}} с сервера. |
- | | + | |
- | 3. Обновите ''ldap-user-tools'' до версии 0.8.0 или более позднее.
| + | |
- | | + | |
- | = Создание групп и выдача административных привилегий = | + | |
- | | + | |
- | 1. Сначала нужно назначить пользователя-администратора. Для прав на выдачу привилегий у него должен быть uid равный 0. Тогда он может назначать привилегии через {{cmd|net rpc rights}}. Заведите временно пользователя в LDAP (например, admin), задайте ему пароль и поменяйте uidNumber так:
| + | |
- | <source lang=Bash>ADMINUID="$(ldap-getent passwd admin uidNumber)"
| + | |
- | echo "uidNumber:0" | ldap-usermod replace admin</source>
| + | |
- | | + | |
- | 2. В LDAP создайте группы через веб-интерфейс или из командной строки:
| + | |
- | ldap-groupadd Admins
| + | |
- | ldap-groupadd Users
| + | |
- | ldap-groupadd Guests
| + | |
- | ldap-groupadd Computers
| + | |
- | | + | |
- | Эти группы понадобятся для привязки к группам домена согласно таблице:
| + | |
- | {|class="standard"
| + | |
- | !Группа LDAP
| + | |
- | !Группа Windows
| + | |
- | !Идентификатор в Windows
| + | |
- | |-
| + | |
- | |{{term|Admins}}||{{term|Domain Admins}}||512
| + | |
- | |-
| + | |
- | |{{term|Users}}||{{term|Domain Users}}||513
| + | |
- | |-
| + | |
- | |{{term|Guests}}||{{term|Domain Guests}}||514
| + | |
- | |-
| + | |
- | |{{term|Computers}}||{{term|Domain Computers}}||515
| + | |
- | |}
| + | |
- | | + | |
- | Добавьте туда пользователей через веб-интерфейс или из командной строки:
| + | |
- | echo 'memberUid:cas' | ldap-groupmod add Admins
| + | |
- | | + | |
- | 3. Привяжите группы LDAP к группам домена
| + | |
- | net groupmap add rid=512 ntgroup="Domain Admins" unixgroup=Admins
| + | |
- | net groupmap add rid=513 ntgroup="Domain Users" unixgroup=Users
| + | |
- | net groupmap add rid=514 ntgroup="Domain Guests" unixgroup=Guests
| + | |
- | net groupmap add rid=515 ntgroup="Domain Computers" unixgroup=Computers
| + | |
- | | + | |
- | Проверка:
| + | |
- | # net rpc group members 'Domain Admins' -Uadmin%12345
| + | |
- | WORKGROUP\cas
| + | |
- | | + | |
- | ''Примечание:'' Обратите внимание, пароль можно указывать у имени пользоватeля через «%».
| + | |
- | | + | |
- | 4. Выдайте привилегии для группы {{term|Domain Admins}}:
| + | |
- | net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SePrintOperatorPrivilege \
| + | |
- | SeAddUsersPrivilege SeDiskOperatorPrivilege SeRemoteShutdownPrivilege -Uadmin%12345
| + | |
- | | + | |
- | Проверка (просмотр всех привилегий по группам):
| + | |
- | net rpc rights list accounts -Uadmin
| + | |
- | | + | |
- | ''Примечание'': обратите внимание, что для заведения компьютера в домен нужно входить в группу с привилегией '''SeMachineAccountPrivilege'''.
| + | |
- | | + | |
- | 5. Чтобы не было коллизий с системным пользователем root, после операции по назначению группы и привилегий этого пользователя нужно удалить или восстановить его UID:
| + | |
- | echo "uidNumber:$ADMINUID" | ldap-usermod replace admin
| + | |
- | | + | |
- | 6. Проверяем вход в домен администратора cas:
| + | |
- | # net join -Ucas%123
| + | |
- | Joined domain WORKGROUP.
| + | |
- | | + | |
- | Примечание: проверять вход в домен на сервере следует от пользователя, входящего в группу 'Domain Admins'. Остальным это запрещено. Список зарегистрированных компьютеров можно посмотреть командой: <pre>ldap-getent ws</pre>
| + | |
- | | + | |
- | Всё в порядке, можно вводить компьютеры с Windows в наш домен.
| + | |
- | | + | |
- | = Права доступа =
| + | |
- | | + | |
- | По умолчанию разрешено входить всех доступным пользователям. Посмотреть их список на сервере можно командой:
| + | |
- | # net sam list users
| + | |
- | | + | |
- | Для пользователей, входящих в группу Domain Users (или группу Users в LDAP) имеется доступ на диск Z: (домашняя папка пользователя на сервере с создаваемым подкаталогом {{path|profile}}).
| + | |
- | | + | |
- | Список входящих в эту группу:
| + | |
- | # net sam listmem 'Domain Users'
| + | |
- | | + | |
- | = Ввод компьютера с Windows в домен =
| + | |
- | | + | |
- | {{todo|Сделать инструкцию со снимками экрана}}
| + | |
- | | + | |
- | = Решение проблем =
| + | |
- | | + | |
- | == Если что-то пошло не так... ==
| + | |
- | Если в результате экспериментов сломались привилегии или что-нибудь ещё, нужно очистить внутренние базы Samba. Выполните
| + | |
- | rm -f /var/lib/samba/*.tdb
| + | |
- | service smb restart
| + | |
- | | + | |
- | == Отладка Samba ==
| + | |
- | Полезно включить уровень отладки 5 в /etc/samba/smb.conf:
| + | |
- | log level = 5
| + | |
- | | + | |
- | После этого необходимо перечитать конфигурацию:
| + | |
- | service smb reload
| + | |
- | | + | |
- | Подробный журнал работы Samba вы можете найти в файле {{path|/var/log/samba/log.main}}.
| + | |
- | | + | |
- | == Смена имени сервера Samba ==
| + | |
- | Так как при создании нового пользователя в домене для него прописывается SID, при смене имени сервера серверная часть SID меняется и пользователи со старыми SID уже недоступны, показывается примерно такое
| + | |
- | # pdbedit -L
| + | |
- | sid S-1-5-21-694984405-1863599809-1435972588-11002 does not belong to our domain
| + | |
- | | + | |
- | При этом новые пользователи заводятся уже с правильным SID. Для исправления ситуации со старыми пользователями нужно выполнить следующий скрипт: <source lang=Bash>
| + | |
- | nsid=$(net getlocalsid | cut -f2 -d: | tr -d ' ')
| + | |
- | ldap-getent passwd \* uid SambaSID | sed 's/:.*-/ /' | while read u id;do echo "SambaSID:$nsid-$id" | ldap-usermod replace "$u";done</source>
| + | |
- | | + | |
- | После этого команда <pre>pdbedit -L</pre> должна показать имена всех пользователей.
| + | |
- | | + | |
- | == Нюансы реализации ==
| + | |
- | # Для заведения компьютеров в домен недостаточно типа sambaSAMAccount, потребовалось добавить тип posixAccount (для поиска имени компьютера используется {{cmd|getent passwd}}, хотя это совершенно странно), заводить одноимённую группу и сделать её основной для posixAccount.
| + | |
- | # Для заведения доверенных компьютеров необходимо использовать {{cmd|ldap-useradd -w -i}}. Имя компьютера в таком случае содержит в конце символ {{term|$}}.
| + | |
- | # Длина имени workgroup не должна превышать 15 символов (см. http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name)
| + | |
- | | + | |
- | = Литература =
| + | |
- | * [http://forum.altlinux.org/index.php/topic,3747.0.html Обсуждение ввода машин с Windows в домен ALT Linux]
| + | |
- | * [http://smb-conf.ru/2-smbconf-po-tematike.html Все о Samba: smb.conf – По тематике]
| + | |
- | * [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/groupmapping.html http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/groupmapping.html]
| + | |
- | * [http://www.opennet.ru/base/net/samba_pdc_slackware.txt.html SAMBA PDC - установка, настройка, управление (Slackware)]
| + | |
- | * [http://www.linux.org.ru/forum/admin/6798226 Samba PDC LDAP добавление компов в домен]
| + | |
| | | |
| = TODO = | | = TODO = |
- | {{todo|# Разобрать и автоматизировать заведение дополнительных параметров Samba | + | {{todo|# Проверить на ввод компьютеры с Windows 7 и Windows 8 |
- | # <s>Доработать ldap-useradd -w -i</s>
| + | |
- | # <s>Убрать создаваемые компьютеры в alterator-ldap-users</s>
| + | |
- | # <s>Убрать создаваемые группы в alterator-ldap-users и alterator-ldap-groups</s>
| + | |
- | # Сделать скрипт по первичному заведению администраторов и групп
| + | |
- | # Проверить на ввод компьютеры с Windows 7 и Windows 8 | + | |
| # Документировать изменения}} | | # Документировать изменения}} |
| + | |
| + | = Ссылки = |
| + | * [[Домен/Windows/Manual|Настройка NT домена вручную]] |
| | | |
| [[Категория:Руководства]][[Категория:Домен]] | | [[Категория:Руководства]][[Категория:Домен]] |