Невозможно присоединить Ubuntu / Linux к Active Directory в качестве пользователя домена. Работает с Windows-клиентами
Я пытаюсь присоединить компьютер Ubuntu/Linux к домену Active Directory как обычную учетную запись пользователя, который не является членом группы администраторов домена.
Я прекрасно могу подключиться к компьютерам с Windows. Вам не обязательно быть администратором, но у вас должна быть определенная квота компьютеров, к которой вы можете присоединиться, не будучи администратором.
Но когда я пытаюсь подключить компьютер с Ubuntu Linux к домену, он терпит неудачу с сообщением об ошибке ниже. Буду признателен за любую помощь в этом.
daniel@linux01:~$ sudo realm join -v -U 'daniel@AD.example.com' AD.example.com
[sudo] password for daniel:
 * Resolving: _ldap._tcp.ad.example.com
 * Performing LDAP DSE lookup on: 10.0.0.10
 * Successfully discovered: ad.example.com
Password for daniel@AD.example.com:
 * Unconditionally checking packages
 * Resolving required packages
 * LANG=C /usr/sbin/adcli join --verbose --domain ad.example.com --domain-realm AD.example.com --domain-controller 10.0.0.10 --login-type user --login-user daniel@AD.example.com --stdin-password
 * Using domain name: ad.example.com
 * Calculated computer account name from fqdn: LINUX01
 * Using domain realm: ad.example.com
 * Sending NetLogon ping to domain controller: 10.0.0.10
 * Received NetLogon info from: dc1.ad.example.com
 * Wrote out krb5.conf snippet to /var/cache/realmd/adcli-krb5-iIuXdP/krb5.d/adcli-krb5-conf-eeT5bO
 * Authenticated as user: daniel@AD.example.com
 * Looked up short domain name: AD
 * Looked up domain SID: S-1-5-21-13313029-848207003-2406435418
 * Using fully qualified name: linux01.ad.example.com
 * Using domain name: ad.example.com
 * Using computer account name: LINUX01
 * Using domain realm: ad.example.com
 * Calculated computer account name from fqdn: LINUX01
 * Generated 120 character computer password
 * Using keytab: FILE:/etc/krb5.keytab
 * Computer account for LINUX01$ does not exist
 * Found well known computer container at: CN=Computers,DC=ad,DC=example,DC=com
 * Calculated computer account: CN=LINUX01,CN=Computers,DC=ad,DC=example,DC=com
 * Encryption type [3] not permitted.
 * Encryption type [1] not permitted.
 ! Insufficient permissions to modify computer account: CN=LINUX01,CN=Computers,DC=ad,DC=example,DC=com: 000020E7: AtrErr: DSID-03153402, #1:
        0: 000020E7: DSID-03153402, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 90008 (userAccountControl):len 4
adcli: joining domain ad.example.com failed: Insufficient permissions to modify computer account: CN=LINUX01,CN=Computers,DC=ad,DC=example,DC=com: 000020E7: AtrErr: DSID-03153402, #1:
        0: 000020E7: DSID-03153402, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 90008 (userAccountControl):len 4
 ! Insufficient permissions to join the domain
realm: Couldn't join realm: Insufficient permissions to join the domain
2 ответа
Вы не указываете имя контейнера (CN в сообщениях об ошибках), поэтому компьютер Linux01 вставляется в CN по умолчанию "Компьютеры". Я предполагаю, что у вашей учетной записи недостаточно прав для изменения этого CN, или, что более вероятно, она даже не существует в вашем AD, поэтому вы должны указать полный путь CN.
В Windows при добавлении компьютера в AD графический интерфейс пользователя позволяет перемещаться по дереву доменов и выбирать соответствующий контейнер (лист). Вам, вероятно, следует добавить запись в свой 
       realm.conf файл или добавьте информацию об OU прямо в командную строку.
/etc/realmd.conf по умолчанию:
[domain.example.com]
computer-ou = OU=Linux Computers,DC=AD,DC=example,DC=com
# computer-ou = OU=Linux Computers,
В командной строке:
realm join --user=daniel@AD.example.com AD.example.com --computer-ou='Linux ComputersDC=AD,DC=example,DC=com'
Сначала найдите OU/CN с 
       ldapsearch:
ldapsearch -LLL -H ldap://AD.example.com -b adc,dc=example,dc=com -D 'AD\daniel'  -W '(name=web_servers)' dn
У меня была точно такая же проблема, и оказалось, что для присоединения системы Linux к домену требуется больше разрешений, чем системы Windows, хотя я не уверен, почему это так.
Я добавил дополнительные разрешения к своей учетной записи для присоединения к домену, следуя этому руководству: https://www.computertechblog.com/active-directory-permissions-required-to-join-linux-and-windows-computers-to-a-domain/
По ссылке выше:
Стандартные разрешения, необходимые для присоединения систем к AD (Linux и Windows)
- Сброс пароля
- Ограничения на чтение и запись аккаунта
- Подтвержденная запись на имя хоста DNS
- Подтвержденная запись в имя участника службы
- Чтение и запись атрибутов имени хоста DNS
Дополнительные разрешения, необходимые машинам Linux для присоединения к AD (Linux)
- Читать dNSHostName
- Напишите dNSHostName
- Прочтите msDS-AddtionalSamAccountName
- Напишите msDS-AddtionalSamAccountName
- Прочитать msDS-SupportedEncryptionTypes
- Написать msDS-SupportedEncryptionTypes
- Читать операционную систему
- Запись операционной системы
- Прочитать версию операционной системы
- Написать версию операционной системы
- Прочитать OperatingSystemServicePack
- Написать OperatingSystemServicePack
- Прочитать servicePrincipalName
- Написать servicePrincipalName
- Читать userAccountControl
- Написать userAccountControl
- Прочитать имя пользователя
- Напишите имя пользователя
ПРИМЕЧАНИЕ. Чтобы увидеть эти дополнительные разрешения, необходимо показать разрешения "для конкретного ресурса".
Связанный:
- Невозможно присоединиться к домену с помощью samba tool net или realm/sssd
- Учетная запись для чтения AD, присоединения компьютера к домену, удаления учетных записей компьютеров и перемещения компьютеров в подразделения.
- Недостаточный доступ при попытке установить атрибуты ОС машины при присоединении сервера Linux к Active Directory