Домен/Windows

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Использование домена для аутентификации компьютеров с Windows.

Создание групп и выдача административных привилегий

1. Сначала нужно назначить пользователя-администратора. Для прав на выдачу привилегий у него должен быть uid равный 0. Тогда он может назначать привилегии через net rpc rights. Заведите временно пользователя в LDAP (например, admin), задайте ему пароль и поменяйте uidNumber так:

echo "uidNumber:0" | ldap-usermod replace admin

2. В LDAP создайте группы через веб-интерфейс или из командной строки:

ldap-groupadd Admins
ldap-groupadd Users
ldap-groupadd Guests
ldap-groupadd Computers

Эти группы понадобятся для привязки к группам домена согласно таблице:

Группа LDAP Группа Windows Идентификатор в Windows
Admins Domain Admins 512
Users Domain Users 513
Guests Domain Guests 514
Computers 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
SCHOOL-5\cas

Примечание: Обратите внимание, пароль можно указывать у имени пользоватeля через «%».

4. Выдайте привилегии для группы 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 на другой.

6. Проверяем вход в домен администратора cas:

# net join -Ucas%123
Joined domain SCHOOL-5.

Всё в порядке, можно вводить компьютеры с Winsows в наш домен.

Права доступа

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

# net sam list users

Для пользователей, входящих в группу Domain Users (или группу Users в LDAP) имеется доступ на диск Z: (домашняя папка пользователя на сервере с создаваемым подкаталогом profile).

Список входящих в эту группу:

# net sam listmem 'Domain Users'

Решение проблем

Если что-то пошло не так...

Если в результате экспериментов сломались привилегии или что-нибудь ещё, нужно очистить внутренние базы Samba. Выполните

rm -f /var/lib/samba/*.tdb
service smb restart

Смена имени сервера Samba

Так как при создании нового пользователя в домене для него прописывается SID, при смене имени сервера серверная часть SID меняется и пользователи со старыми SID уже недоступны, показывается примерно такое

# pdbedit -L
sid S-1-5-21-694984405-1863599809-1435972588-11002 does not belong to our domain

При этом новые пользователи заводятся уже с правильным SID. Для исправления ситуации со старыми пользователями нужно выполнить следующий скрипт:

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

После этого команда

pdbedit -L

должна показать имена всех пользователей.

Литература