<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>44924</bug_id>
          
          <creation_ts>2023-01-15 08:23:16 +0300</creation_ts>
          <short_desc>Не работает добавления компьютера в дочернем OU (sub OU)</short_desc>
          <delta_ts>2023-10-19 13:47:35 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>alterator-auth</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alexunderboots">al.tar44046</reporter>
          <assigned_to name="Andrey Cherepanov">cas</assigned_to>
          <cc>al.tar44046</cc>
    
    <cc>alimektor</cc>
    
    <cc>boyarsh</cc>
    
    <cc>kolesnichenko</cc>
    
    <cc>shevtsov.anton</cc>
    
    <cc>sin</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>220144</commentid>
    <comment_count>0</comment_count>
    <who name="alexunderboots">al.tar44046</who>
    <bug_when>2023-01-15 08:23:16 +0300</bug_when>
    <thetext>При добавлении в домен компов p10 некорректно работает YOU
Работает в таком виде [--
createcomputer=&quot;COMPUTEROU&quot;]

Но с вложенными OU уже не срабатывает ни так [--createcomputer=&quot;COMPUTEROU, СШ5&quot;] ни так [--createcomputer=&quot;ou=COMPUTEROU,ou=СШ5&quot;]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220153</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeny Shesteperov">alimektor</who>
    <bug_when>2023-01-16 10:03:30 +0300</bug_when>
    <thetext>Добрый день!

Пожалуйста, дополнительно предоставьте следующую информацию:

1. Операционная система, версия, на которой воспроизвелась ошибка.
2. Выводы следующих команд:

        $ uname -a
        $ cat /etc/os-release
        $ apt-repo

3. Опишите шаги воспроизведения, ожидаемый результат.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220176</commentid>
    <comment_count>2</comment_count>
    <who name="alexunderboots">al.tar44046</who>
    <bug_when>2023-01-16 15:12:17 +0300</bug_when>
    <thetext>(Ответ для Evgeny Shesteperov на комментарий #1)
&gt; Добрый день!
&gt; 
&gt; Пожалуйста, дополнительно предоставьте следующую информацию:
&gt; 
&gt; 1. Операционная система, версия, на которой воспроизвелась ошибка.
&gt; 2. Выводы следующих команд:
&gt; 
&gt;         $ uname -a
&gt;         $ cat /etc/os-release
&gt;         $ apt-repo
&gt; 
&gt; 3. Опишите шаги воспроизведения, ожидаемый результат.

Linux gp5m-332-01 5.10.82-std-def-alt1 #1 SMP Fri Dec 3 14:49:25 UTC 2021 x86_64 GNU/Linux

NAME=&quot;ALT Workstation&quot;
VERSION=&quot;10.1&quot;
ID=altlinux
VERSION_ID=10.1
PRETTY_NAME=&quot;ALT Workstation 10.1 (Autolycus)&quot;
ANSI_COLOR=&quot;1;33&quot;
CPE_NAME=&quot;cpe:/o:alt:workstation:10.1&quot;
BUILD_ID=&quot;ALT Workstation 10.0&quot;
HOME_URL=&quot;https://basealt.ru/&quot;
BUG_REPORT_URL=&quot;https://bugs.altlinux.org/&quot;

rpm http://repo-fix.adm72.local/local-p10 x86_64 local-p10
rpm http://repo-fix.adm72.local/local-p10 x86_64-i586 local-p10
rpm http://repo-fix.adm72.local/local-p10 noarch local-p10
rpm http://repo-fix.adm72.local/altlinux p10/branch/x86_64 classic
rpm http://repo-fix.adm72.local/altlinux p10/branch/x86_64-i586 classic
rpm http://repo-fix.adm72.local/altlinux p10/branch/noarch classic

Установили, настроили, накатили все обновления с кернелом и при добавлении в домен не можем добавить в подгруппу OU, только в сам OU</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220177</commentid>
    <comment_count>3</comment_count>
    <who name="Evgeny Shesteperov">alimektor</who>
    <bug_when>2023-01-16 15:37:25 +0300</bug_when>
    <thetext>(Ответ для alexunderboots на комментарий #2)
&gt; (Ответ для Evgeny Shesteperov на комментарий #1)
&gt; &gt; Добрый день!
&gt; &gt; 
&gt; &gt; Пожалуйста, дополнительно предоставьте следующую информацию:
&gt; &gt; 
&gt; &gt; 1. Операционная система, версия, на которой воспроизвелась ошибка.
&gt; &gt; 2. Выводы следующих команд:
&gt; &gt; 
&gt; &gt;         $ uname -a
&gt; &gt;         $ cat /etc/os-release
&gt; &gt;         $ apt-repo
&gt; &gt; 
&gt; &gt; 3. Опишите шаги воспроизведения, ожидаемый результат.
&gt; 
&gt; Linux gp5m-332-01 5.10.82-std-def-alt1 #1 SMP Fri Dec 3 14:49:25 UTC 2021
&gt; x86_64 GNU/Linux
&gt; 
&gt; NAME=&quot;ALT Workstation&quot;
&gt; VERSION=&quot;10.1&quot;
&gt; ID=altlinux
&gt; VERSION_ID=10.1
&gt; PRETTY_NAME=&quot;ALT Workstation 10.1 (Autolycus)&quot;
&gt; ANSI_COLOR=&quot;1;33&quot;
&gt; CPE_NAME=&quot;cpe:/o:alt:workstation:10.1&quot;
&gt; BUILD_ID=&quot;ALT Workstation 10.0&quot;
&gt; HOME_URL=&quot;https://basealt.ru/&quot;
&gt; BUG_REPORT_URL=&quot;https://bugs.altlinux.org/&quot;
&gt; 
&gt; rpm http://repo-fix.adm72.local/local-p10 x86_64 local-p10
&gt; rpm http://repo-fix.adm72.local/local-p10 x86_64-i586 local-p10
&gt; rpm http://repo-fix.adm72.local/local-p10 noarch local-p10
&gt; rpm http://repo-fix.adm72.local/altlinux p10/branch/x86_64 classic
&gt; rpm http://repo-fix.adm72.local/altlinux p10/branch/x86_64-i586 classic
&gt; rpm http://repo-fix.adm72.local/altlinux p10/branch/noarch classic
&gt; 
&gt; Установили, настроили, накатили все обновления с кернелом и при добавлении в
&gt; домен не можем добавить в подгруппу OU, только в сам OU

Попробую воспроизвести.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220240</commentid>
    <comment_count>4</comment_count>
    <who name="Evgeny Shesteperov">alimektor</who>
    <bug_when>2023-01-17 15:20:51 +0300</bug_when>
    <thetext>Версия
======

- alterator-auth-0.43.15-alt1

Дистрибутивы
============

- p10-workstation-10-x86-64, обновленный до Sisyphus

Стенд
=====

- p10-server-10-x86-64, обновленный до Sisyphus
    - в качестве сервера Samba
    - доменное имя: dc.samba.testdomain
- p10-workstation-10-x86-64, обновленный до Sisyphus
    - в качестве клиента Samba
    - доменное имя: testpc.samba.testdomain

Шаги воспроизведения
====================

1. На сервере Samba установить ADMC:
   
        # apt-get install -y admc
   
2. Запустить ADMC:
   
        $ kinit Administrator
        $ admc
   
3. Создать подразделение COMPUTEROU с помощью ADMC: ПКМ по samba.testdomain → Создать → Подразделение, ввести имя COMPUTEROU.
4. Создать субподразделение SUBCOMPUTEROU с помощью ADMC: ПКМ по созданному подразделению COMPUTEROU → Создать → Подразделение, ввести имя SUBCOMPUTEROU.
5. ПКМ по созданному подразделению SUBCOMPUTEROU → Создать → Компьютер, задать имя testpc, нажать ОК.
   
   В итоге получилось следующее дерево:
   
        samba.testdomain
        └── COMPUTEROU
            └── SUBCOMPUTEROU
                └── testpc
   
6. На клиенте (Workstation) выполнить следующий сценарий:
   
        # apt-get install -y task-auth-ad-sssd
        # DOMAINNAME=&quot;samba.testdomain&quot;
        # SERVERIP=&lt;Адрес сервера SAMBA&gt;
        # hostnamectl set-hostname testpc
        # echo -e &quot;name_servers=$SERVERIP\nsearch_domains=$DOMAINNAME&quot; &gt;&gt; /etc/resolvconf.conf
        # reboot
   
7. После перезагрузки выполнить ввод в домен с использованием опции --createcomputer=SUBCOMPUTEROU:
   
        # system-auth write ad SAMBA.TESTDOMAIN $(hostname --short) SAMBA Administrator &apos;&lt;Пароль администратора SAMBA&gt;&apos; --createcomputer=SUBCOMPUTEROU

Ожидаемый результат: присоединение к домену.

Фактический результат: ошибка, что такого объекта нет

    Failed to join domain: failed to precreate account in ou ou=&quot;SUBCOMPUTEROU&quot;,dc=SAMBA,dc=TESTDOMAIN: No such object

Аналогично с опцией --createcomputer=COMPUTEROU,SUBCOMPUTEROU:

    Failed to join domain: failed to precreate account in ou ou=&quot;COMPUTEROU,SUBCOMPUTEROU&quot;,dc=SAMBA,dc=TESTDOMAIN: No such object

Воспроизводится в P10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227208</commentid>
    <comment_count>5</comment_count>
    <who name="Oleg Kolesnichenko">kolesnichenko</who>
    <bug_when>2023-06-07 15:22:46 +0300</bug_when>
    <thetext>Добрый день. Столкнулся с такой же проблемой.

При выполнении команды:
# system-auth write ad test.alt host333 domain &apos;administrator&apos; &apos;Gfhjkm123&apos; --createcomputer=&quot;TestOU,TestJoin&quot;
Failed to join domain: failed to precreate account in ou ou=&quot;TestOU,TestJoin&quot;,dc=TEST,dc=ALT: No such object

Просмотрел скрипт system-auth, он передаёт аргумент дальше на net ads join. В мане net нашёл, что можно указывать OU в виде &quot;TestOU/TestJoin&quot; (с разделителем &apos;/&apos;)

Попробовал команду:
# system-auth write ad test.alt host333 domain &apos;administrator&apos; &apos;Gfhjkm123&apos; --createcomputer=&quot;TestOU/TestJoin&quot;
Failed to join domain: failed to precreate account in ou &quot;TestOU/TestJoin&quot;: Invalid DN syntax

Изменил немного скрипт system-auth в 17 строке:
&apos;--createcomputer&apos;) shift; OU=&quot;createcomputer=\&quot;$1\&quot;&quot;; shift;;
на
&apos;--createcomputer&apos;) shift; OU=&quot;createcomputer=$1&quot;; shift;;
т.е. убрал кавычки и команда успешно отработала (машина присоединена к домену и добавлена в нужную OU).
Но такое решение работает, как я понимаю, только если в названиях OU нет пробелов.

Параметры машины:

# uname -a
Linux host333.test.alt 5.10.179-std-def-alt1 #1 SMP Fri Apr 28 16:59:34 UTC 2023 x86_64 GNU/Linux

# cat /etc/os-release
NAME=&quot;ALT Workstation&quot;
VERSION=&quot;10.1&quot;
ID=altlinux
VERSION_ID=10.1
PRETTY_NAME=&quot;ALT Workstation 10.1 (Autolycus)&quot;
ANSI_COLOR=&quot;1;33&quot;
CPE_NAME=&quot;cpe:/o:alt:workstation:10.1&quot;
BUILD_ID=&quot;ALT Workstation 10.0&quot;
HOME_URL=&quot;https://basealt.ru/&quot;
BUG_REPORT_URL=&quot;https://bugs.altlinux.org/&quot;

# apt-repo
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227218</commentid>
    <comment_count>6</comment_count>
    <who name="Anton Shevtsov">shevtsov.anton</who>
    <bug_when>2023-06-07 15:53:54 +0300</bug_when>
    <thetext>Подтверждаю проблему. Пока выкрутился так

diff -u /usr/sbin/system-auth.orig /usr/sbin/system-auth
--- /usr/sbin/system-auth.orig	2023-06-07 17:29:12.983845612 +0500
+++ /usr/sbin/system-auth	2023-06-07 17:51:41.921873329 +0500
@@ -14,7 +14,7 @@
 while [[ $# -gt 0 ]]; do
   case &quot;$1&quot; in
     &apos;-d&apos;) set -x; shift;;
-    &apos;--createcomputer&apos;) shift; OU=&quot;createcomputer=\&quot;$1\&quot;&quot;; shift;;
+    &apos;--createcomputer&apos;) shift; OU=&quot;createcomputer=$1&quot;; shift;;
     &apos;--windows2003&apos;)  win2003=&quot;true&quot;; shift;;
     &apos;--winbind&apos;)  use_winbind=&quot;true&quot;; shift;;
     --) shift;;
@@ -720,7 +720,7 @@
 	IFS=: read -r OS_NAME OS_VER &lt;&lt;&lt;&quot;$(hostnamectl | sed -E -n &apos;s/^.*Operating System: (.*) ([0-9.]+).*$/\1:\2/p&apos;)&quot;
 
 	# Join to domain
-	$net_cmd ads join --use-kerberos=required --no-dns-updates --use-krb5-ccache=&quot;$krb_ccache_name&quot; $OU osName=&quot;$OS_NAME&quot; osVer=&quot;$OS_VER&quot;
+	$net_cmd ads join --use-kerberos=required --no-dns-updates --use-krb5-ccache=&quot;$krb_ccache_name&quot; &quot;${OU}&quot; osName=&quot;$OS_NAME&quot; osVer=&quot;$OS_VER&quot;
 
 	[ &quot;$?&quot; -ne 0 ] &amp;&amp; return 1



system-auth write ad ad2012r2.dom host-27 ad2012r2 da-01 &apos;Qwerty1&apos; --createcomputer=&quot;NewCompUnit/Sub\ Comp\ Unit&quot;

Using short domain name -- AD2012R2
Joined &apos;HOST-27&apos; to dns domain &apos;ad2012r2.dom&apos;
Successfully registered hostname with DNS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227271</commentid>
    <comment_count>7</comment_count>
    <who name="Anton Shevtsov">shevtsov.anton</who>
    <bug_when>2023-06-08 07:58:28 +0300</bug_when>
    <thetext>Также есть ошибка с описанием опций
 system-auth write ad domain.name host workgroup [Administrator password] [--windows2003] [--createcomputer=&quot;ou=COMPUTEROU&quot;] [--winbind]

в частности --createcomputer=&quot;ou=COMPUTEROU&quot; должно быть указано, как
--createcomputer=&quot;COMPUTEROU&quot; т.е. без ou=</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235197</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2023-10-19 13:47:35 +0300</bug_when>
    <thetext>alterator-auth-0.44.6-alt1 -&gt; sisyphus:

 Thu Oct 19 2023 Andrey Cherepanov &lt;cas@altlinux&gt; 0.44.6-alt1
 - system-auth: fix join to sub OU (ALT #44924)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>