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

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

    <bug>
          <bug_id>55111</bug_id>
          
          <creation_ts>2025-07-09 14:27:34 +0300</creation_ts>
          <short_desc>Выполнение net ads keytab create не приводит к созданию keytab-файла на КД</short_desc>
          <delta_ts>2025-08-04 15:32:37 +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>samba</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=51359</see_also>
    
    <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=55376</see_also>
    
    <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=55480</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55324</dependson>
          <blocked>51359</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="bestar">tarancoll429</reporter>
          <assigned_to name="Evgeny Sinelnikov">sin</assigned_to>
          <cc>sin</cc>
    
    <cc>varaksaaa</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>268620</commentid>
    <comment_count>0</comment_count>
    <who name="bestar">tarancoll429</who>
    <bug_when>2025-07-09 14:27:34 +0300</bug_when>
    <thetext>В процессе развертывание стенда возникла необходимость настройки аутентификации доменных пользователей на контроллерах домена. Настройка проводилась в соответствии с этой инструкцией: https://www.altlinux.org/ActiveDirectory/Login/DC .

Схема стенда тривиальна: два Alt Server 11 обновленных до сизифа.

Была выявлена ошибка, которая заключается в том, что на контроллерах домена не генерируется keytab после выполнения net ads keytab create. Никаких ошибок или сообщений после выполнения команды не появляется.

В тоже время при развертывании контроллера домена на p11 ошибка ожидаемо не проявляется.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268628</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2025-07-09 14:48:49 +0300</bug_when>
    <thetext>Это нужно проверить более подробно. Предполагаю, в этом механизме в samba-4.21 имеется ряд значительный изменений. В том числе и точки зрения поведения:
- https://www.samba.org/samba/history/samba-4.21.0.html

Как минимум, стоит обратить внимание на новую опцию:
  sync machine password to keytab         keytabs

Некоторые подробности из man net:
   ADS KEYTAB CREATE
       Since Samba 4.21.0, keytab file is created as specified in sync machine password to keytab . The keytab can be created only when machine password is available in
       secrets.tdb, i.e. only for kerberos method = secrets only and kerberos method = secrets and keytab. With the smb.conf default values for kerberos method = secrets
       only and sync machine password to keytab (default is empty) the keytab is not generated at all. Keytab with a default name containing: SPNs synced from AD, account
       name COMPUTER$ and principal host/dns_hostname is created for kerberos method = secrets and keytab if sync machine password to keytab is missing.

       Till Samba 4.20, these entries were created by default: the account name COMPUTER$, &apos;host&apos; principal and SPNs synced from AD. Example below generates such keytab:

           sync machine password to keytab = /etc/krb5.keytab:spn_prefixes=host:account_name:sync_spns:sync_kvno:machine_password

       No changes are made to the computer AD account.

В Сизифе samba-4.21, а в p11 ещё samba-4.20.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269151</commentid>
    <comment_count>2</comment_count>
    <who name="bestar">tarancoll429</who>
    <bug_when>2025-07-15 14:36:25 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #1)
&gt; Это нужно проверить более подробно. Предполагаю, в этом механизме в
&gt; samba-4.21 имеется ряд значительный изменений. В том числе и точки зрения
&gt; поведения:
&gt; - https://www.samba.org/samba/history/samba-4.21.0.html
&gt; 
&gt; Как минимум, стоит обратить внимание на новую опцию:
&gt;   sync machine password to keytab         keytabs
&gt; 
&gt; Некоторые подробности из man net:
&gt;    ADS KEYTAB CREATE
&gt;        Since Samba 4.21.0, keytab file is created as specified in sync
&gt; machine password to keytab . The keytab can be created only when machine
&gt; password is available in
&gt;        secrets.tdb, i.e. only for kerberos method = secrets only and
&gt; kerberos method = secrets and keytab. With the smb.conf default values for
&gt; kerberos method = secrets
&gt;        only and sync machine password to keytab (default is empty) the
&gt; keytab is not generated at all. Keytab with a default name containing: SPNs
&gt; synced from AD, account
&gt;        name COMPUTER$ and principal host/dns_hostname is created for
&gt; kerberos method = secrets and keytab if sync machine password to keytab is
&gt; missing.
&gt; 
&gt;        Till Samba 4.20, these entries were created by default: the account
&gt; name COMPUTER$, &apos;host&apos; principal and SPNs synced from AD. Example below
&gt; generates such keytab:
&gt; 
&gt;            sync machine password to keytab =
&gt; /etc/krb5.keytab:spn_prefixes=host:account_name:sync_spns:sync_kvno:
&gt; machine_password
&gt; 
&gt;        No changes are made to the computer AD account.
&gt; 
&gt; В Сизифе samba-4.21, а в p11 ещё samba-4.20.

Действительно, в 4.21 есть указанные изменения поведения. Но, увы, после проведения указанных в мануале изменений в smb.conf проблема осталась нерешенной: net ads create keytab просто ничего не создает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269317</commentid>
    <comment_count>3</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-07-17 12:42:00 +0300</bug_when>
    <thetext>Воспроизвёл данную ошибку.

Шаги
====

1. Развернуть Samba DC (ALT Server 11.0 x86_64). Далее выполнять на нём.

2. В /etc/samba/smb.conf в секцию [global] добавить:

&gt; kerberos method = system keytab

и перезапустить сервис:

&gt; # systemctl restart samba

Полный /etc/samba/smb.conf:

&gt; [global]
&gt;     dns forwarder = &lt;dns ipv4&gt;
&gt;     netbios name = DC
&gt;     realm = SAMBA.TESTDOMAIN
&gt;     server role = active directory domain controller
&gt;     workgroup = SAMBA
&gt;     idmap_ldb:use rfc2307 = yes
&gt;     printcap name = cups
&gt;     load printers = yes
&gt;     cups server = &quot;localhost&quot;
&gt;     printing = cups
&gt;     log file = /var/log/samba/log.%m
&gt;     max log size = 50
&gt;     interfaces = &lt;ipv4&gt; 127.0.0.1
&gt;     bind interfaces only = yes
&gt;     kerberos method = system keytab
&gt;
&gt; [printers]
&gt;     comment = All Printers
&gt;     path = /var/spool/samba
&gt;     browseable = no
&gt;     guest ok = yes
&gt;     writable = yes
&gt;     printable = yes
&gt;
&gt; [media]
&gt;     comment = media
&gt;     browseable = yes
&gt;     path = /media
&gt;     read only = no
&gt;     guest ok = yes
&gt;
&gt; [sysvol]
&gt;     path = /var/lib/samba/sysvol
&gt;     read only = No
&gt;
&gt; [netlogon]
&gt;     path = /var/lib/samba/sysvol/samba.testdomain/scripts
&gt;     read only = No
&gt;
&gt; [SHARE]
&gt;     comment = Share directory for AD users
&gt;     path = /var/share
&gt;     public = no
&gt;     writable = yes
&gt;     read only = no
&gt;     guest ok = no
&gt;     valid users = &quot;@SAMBA\Domain Users&quot; &quot;@SAMBA\Domain Admins&quot;
&gt;     create mask = 0666
&gt;     directory mask = 0777
&gt;     force create mode = 0666
&gt;     force directory mode = 0777
&gt;     inherit owner = yes

3. # kinit Administrator &amp;&amp; \
    klist &amp;&amp; \
    net ads keytab create; \
    klist -k; \
    net ads keytab list

4. # kdestroy &amp;&amp; \
    net ads keytab create -UAdministrator; \
    klist -k; \
    net ads keytab list


Фактический результат
=====================

3. Keytab не создаётся. Вывод:

&gt; Password for Administrator@SAMBA.TESTDOMAIN:
&gt; Warning: Your password will expire in 40 days on Вт 26 авг 2025 17:52:37
&gt; Ticket cache: KEYRING:persistent:0:0
&gt; Default principal: Administrator@SAMBA.TESTDOMAIN
&gt;
&gt; Valid starting       Expires              Service principal
&gt; 17.07.2025 11:48:20  17.07.2025 21:48:20  krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN
&gt; 	renew until 24.07.2025 11:48:18
&gt; Keytab name: FILE:/etc/krb5.keytab
&gt; klist: Key table file &apos;/etc/krb5.keytab&apos; not found while starting keytab scan


4. Не запрашивается пароль Administrator. Keytab не создаётся. Вывод:

&gt; Keytab name: FILE:/etc/krb5.keytab
&gt; klist: Key table file &apos;/etc/krb5.keytab&apos; not found while starting keytab scan


Ожидаемый результат
===================

Успешное выполнение всех команд и создание keytab, как в p11 (отдельно см. https://bugzilla.altlinux.org/51359):

3.

&gt; Password for Administrator@SAMBA.TESTDOMAIN:
&gt; Warning: Your password will expire in 40 days on Вт 26 авг 2025 17:51:18
&gt; Ticket cache: KEYRING:persistent:0:0
&gt; Default principal: Administrator@SAMBA.TESTDOMAIN
&gt;
&gt; Valid starting       Expires              Service principal
&gt; 17.07.2025 11:48:13  17.07.2025 21:48:13  krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN
&gt; 	renew until 24.07.2025 11:48:10
&gt; kerberos_kinit_password SAMBA@SAMBA.TESTDOMAIN failed: Client not found in Kerberos database
&gt; Keytab name: FILE:/etc/krb5.keytab
&gt; KVNO Principal
&gt; ---- --------------------------------------------------------------------------
&gt;    1 host/dc.samba.testdomain@SAMBA.TESTDOMAIN
&gt;    1 host/DC@SAMBA.TESTDOMAIN
&gt; ...
&gt;    1 DC$@SAMBA.TESTDOMAIN
&gt; Vno  Type                                        Principal
&gt;   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     host/dc.samba.testdomain@SAMBA.TESTDOMAIN
&gt;   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     host/DC@SAMBA.TESTDOMAIN
&gt; ...
&gt;   1  ArcFour with HMAC/md5                       DC$@SAMBA.TESTDOMAIN


4.

&gt; Password for [SAMBA\Administrator]:
&gt; kerberos_kinit_password SAMBA@SAMBA.TESTDOMAIN failed: Client not found in Kerberos database
&gt; Keytab name: FILE:/etc/krb5.keytab
&gt; KVNO Principal
&gt; ---- --------------------------------------------------------------------------
&gt;    1 host/dc.samba.testdomain@SAMBA.TESTDOMAIN
&gt;    1 host/DC@SAMBA.TESTDOMAIN
&gt; ...
&gt; 1 DC$@SAMBA.TESTDOMAIN
&gt; Vno  Type                                        Principal
&gt;   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     host/dc.samba.testdomain@SAMBA.TESTDOMAIN
&gt;   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     host/DC@SAMBA.TESTDOMAIN
&gt; ...
&gt;   1  ArcFour with HMAC/md5                       DC$@SAMBA.TESTDOMAIN


Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus]
samba-dc-4.21.7-alt1.x86_64
krb5-kinit-1.21.3-alt2.x86_64

[p11+387440]
samba-dc-4.21.7-alt1.x86_64
krb5-kinit-1.21.3-alt2.x86_64


Не воспроизводится на виртуальных машинах в p11 (но там воспроизводится ошибка https://bugzilla.altlinux.org/51359):

[p11]
samba-dc-4.20.8-alt2.x86_64
krb5-kinit-1.21.3-alt2.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269320</commentid>
    <comment_count>4</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-07-17 13:21:24 +0300</bug_when>
    <thetext>Вывод в [sisyphus] / [p11+387440] с `# export KRB5_TRACE=/dev/stdout` (подробнее показывает только kinit/kdestroy, но возможно полезно):

3.

&gt; [39577] 1752747281.934189: Matching Administrator@SAMBA.TESTDOMAIN in collection with result: -1765328243/Can&apos;t find &gt; client principal Administrator@SAMBA.TESTDOMAIN in cache collection
&gt; [39577] 1752747281.934190: Resolving unique ccache of type KEYRING
&gt; [39577] 1752747281.934191: Getting initial credentials for Administrator@SAMBA.TESTDOMAIN
&gt; [39577] 1752747281.934193: Sending unauthenticated request
&gt; [39577] 1752747281.934194: Sending request (220 bytes) to SAMBA.TESTDOMAIN
&gt; [39577] 1752747281.934195: Resolving hostname dc.samba.testdomain
&gt; [39577] 1752747281.934196: Sending initial UDP request to dgram &lt;ipv6&gt;:88
&gt; [39577] 1752747281.934197: Sending initial UDP request to dgram &lt;ipv6&gt;:88
&gt; [39577] 1752747281.934198: Sending initial UDP request to dgram &lt;ipv4&gt;:88
&gt; [39577] 1752747281.934199: Received answer (402 bytes) from dgram &lt;ipv4&gt;:88
&gt; [39577] 1752747281.934200: Sending DNS URI query for _kerberos.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747281.934201: No URI records found
&gt; [39577] 1752747281.934202: Sending DNS SRV query for _kerberos-master._udp.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747281.934203: Sending DNS SRV query for _kerberos-master._tcp.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747281.934204: No SRV records found
&gt; [39577] 1752747281.934205: Response was not from primary KDC
&gt; [39577] 1752747281.934206: Received error from KDC: -1765328359/Additional pre-authentication required
&gt; [39577] 1752747281.934209: Preauthenticating using KDC method data
&gt; [39577] 1752747281.934210: Processing preauth types: PA-PK-AS-REQ (16), PA-PK-AS-REP_OLD (15), PA-ENC-TIMESTAMP (2), &gt; PA-FX-FAST (136), PA-ETYPE-INFO2 (19), PA_AS_FRESHNESS (150)
&gt; [39577] 1752747281.934211: Selected etype info: etype aes256-cts, salt &quot;SAMBA.TESTDOMAINAdministrator&quot;, params &quot;\x00\x00&gt; \x10\x00&quot;
&gt; [39577] 1752747281.934212: PKINIT client has no configured identity; giving up
&gt; [39577] 1752747281.934213: PKINIT client received freshness token from KDC
&gt; [39577] 1752747281.934214: Preauth module pkinit (150) (info) returned: 0/Success
&gt; [39577] 1752747281.934215: Preauth module pkinit (16) (real) returned: -1765328174/No pkinit_anchors supplied
&gt; Password for Administrator@SAMBA.TESTDOMAIN:
&gt; [39577] 1752747292.996036: AS key obtained for encrypted timestamp: aes256-cts/4D31
&gt; [39577] 1752747292.996038: Encrypted timestamp (for 1752747293.7648): plain &gt; 3019A011180F32303235303731373130313435335AA10402021DE0, encrypted &gt; 2B668E564EBB325A74FBE3DAF2245B09A5FDABAA921CD824B811B51C4C68A8D839F4EA1803DC688FF036CA37CDC593E55C97962C330FF3
&gt; [39577] 1752747292.996039: Preauth module encrypted_timestamp (2) (real) returned: 0/Success
&gt; [39577] 1752747292.996040: Produced preauth for next request: PA-ENC-TIMESTAMP (2)
&gt; [39577] 1752747292.996041: Sending request (299 bytes) to SAMBA.TESTDOMAIN
&gt; [39577] 1752747292.996042: Resolving hostname dc.samba.testdomain
&gt; [39577] 1752747292.996043: Sending initial UDP request to dgram &lt;ipv6&gt;:88
&gt; [39577] 1752747292.996044: Sending initial UDP request to dgram &lt;ipv6&gt;:88
&gt; [39577] 1752747292.996045: Sending initial UDP request to dgram &lt;ipv4&gt;:88
&gt; [39577] 1752747293.013684: Received answer (246 bytes) from dgram &lt;ipv4&gt;:88
&gt; [39577] 1752747293.013685: Sending DNS URI query for _kerberos.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747293.013686: No URI records found
&gt; [39577] 1752747293.013687: Sending DNS SRV query for _kerberos-master._udp.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747293.013688: Sending DNS SRV query for _kerberos-master._tcp.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747293.013689: No SRV records found
&gt; [39577] 1752747293.013690: Response was not from primary KDC
&gt; [39577] 1752747293.013691: Received error from KDC: -1765328332/Response too big for UDP, retry with TCP
&gt; [39577] 1752747293.013692: Request or response is too big for UDP; retrying with TCP
&gt; [39577] 1752747293.013693: Sending request (299 bytes) to SAMBA.TESTDOMAIN (tcp only)
&gt; [39577] 1752747293.013694: Resolving hostname dc.samba.testdomain
&gt; [39577] 1752747293.013695: Initiating TCP connection to stream &lt;ipv6&gt;:88
&gt; [39577] 1752747293.013696: Terminating TCP connection to stream &lt;ipv6&gt;:88
&gt; [39577] 1752747293.013697: Initiating TCP connection to stream &lt;ipv6&gt;:88
&gt; [39577] 1752747293.013698: Terminating TCP connection to stream &lt;ipv6&gt;:88
&gt; [39577] 1752747293.013699: Initiating TCP connection to stream &lt;ipv4&gt;:88
&gt; [39577] 1752747293.013700: Sending TCP request to stream &lt;ipv4&gt;:88
&gt; [39577] 1752747293.013701: Received answer (1772 bytes) from stream &lt;ipv4&gt;:88
&gt; [39577] 1752747293.013702: Terminating TCP connection to stream &lt;ipv4&gt;:88
&gt; [39577] 1752747293.013703: Sending DNS URI query for _kerberos.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747293.013704: No URI records found
&gt; [39577] 1752747293.013705: Sending DNS SRV query for _kerberos-master._tcp.SAMBA.TESTDOMAIN.
&gt; [39577] 1752747293.013706: No SRV records found
&gt; [39577] 1752747293.013707: Response was not from primary KDC
&gt; [39577] 1752747293.013708: Processing preauth types: PA-ETYPE-INFO2 (19)
&gt; [39577] 1752747293.013709: Selected etype info: etype aes256-cts, salt &quot;SAMBA.TESTDOMAINAdministrator&quot;, params &quot;\x00\x00&gt; \x10\x00&quot;
&gt; [39577] 1752747293.013710: Produced preauth for next request: (empty)
&gt; [39577] 1752747293.013711: AS key determined by preauth: aes256-cts/4D31
&gt; [39577] 1752747293.013712: Decrypted AS reply; session key is: aes256-cts/5F13
&gt; [39577] 1752747293.013713: FAST negotiation: available
&gt; [39577] 1752747293.013714: Resolving unique ccache of type MEMORY
&gt; [39577] 1752747293.013715: Initializing MEMORY:F2O2nVp with default princ Administrator@SAMBA.TESTDOMAIN
&gt; [39577] 1752747293.013716: Storing config in MEMORY:F2O2nVp for krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN: fast_avail: yes
&gt; [39577] 1752747293.013717: Storing Administrator@SAMBA.TESTDOMAIN -&gt; krb5_ccache_conf_data/fast_avail/krbtgt&gt; \/SAMBA.TESTDOMAIN\@SAMBA.TESTDOMAIN@X-CACHECONF: in MEMORY:F2O2nVp
&gt; [39577] 1752747293.013718: Storing config in MEMORY:F2O2nVp for krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN: pa_type: 2
&gt; [39577] 1752747293.013719: Storing Administrator@SAMBA.TESTDOMAIN -&gt; krb5_ccache_conf_data/pa_type/krbtgt\/SAMBA.TESTDOMAIN&gt; \@SAMBA.TESTDOMAIN@X-CACHECONF: in MEMORY:F2O2nVp
&gt; [39577] 1752747293.013720: Storing Administrator@SAMBA.TESTDOMAIN -&gt; krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN in &gt; MEMORY:F2O2nVp
&gt; [39577] 1752747293.013721: Moving ccache MEMORY:F2O2nVp to KEYRING:persistent:0:krb_ccache_uCTI96P
&gt; [39577] 1752747293.013722: Initializing KEYRING:persistent:0:krb_ccache_uCTI96P with default princ &gt; Administrator@SAMBA.TESTDOMAIN
&gt; [39577] 1752747293.013723: Storing Administrator@SAMBA.TESTDOMAIN -&gt; krb5_ccache_conf_data/fast_avail/krbtgt&gt; \/SAMBA.TESTDOMAIN\@SAMBA.TESTDOMAIN@X-CACHECONF: in KEYRING:persistent:0:krb_ccache_uCTI96P
&gt; [39577] 1752747293.013724: Storing Administrator@SAMBA.TESTDOMAIN -&gt; krb5_ccache_conf_data/pa_type/krbtgt\/SAMBA.TESTDOMAIN&gt; \@SAMBA.TESTDOMAIN@X-CACHECONF: in KEYRING:persistent:0:krb_ccache_uCTI96P
&gt; [39577] 1752747293.013725: Storing Administrator@SAMBA.TESTDOMAIN -&gt; krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN in &gt; KEYRING:persistent:0:krb_ccache_uCTI96P
&gt; [39577] 1752747293.013726: Destroying ccache MEMORY:F2O2nVp
&gt; Warning: Your password will expire in 40 days on Вт 26 авг 2025 13:45:58
&gt; Ticket cache: KEYRING:persistent:0:krb_ccache_uCTI96P
&gt; Default principal: Administrator@SAMBA.TESTDOMAIN
&gt;
&gt; Valid starting       Expires              Service principal
&gt; 17.07.2025 13:14:53  17.07.2025 23:14:53  krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN
&gt; 	renew until 24.07.2025 13:14:41
&gt; Keytab name: FILE:/etc/krb5.keytab
&gt; klist: Key table file &apos;/etc/krb5.keytab&apos; not found while starting keytab scan

4.

[39660] 1752747340.975405: Destroying ccache KEYRING:persistent:0:krb_ccache_uCTI96P
Other credential caches present, use -A to destroy all
Keytab name: FILE:/etc/krb5.keytab
klist: Key table file &apos;/etc/krb5.keytab&apos; not found while starting keytab scan</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269893</commentid>
    <comment_count>5</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2025-07-26 03:27:29 +0300</bug_when>
    <thetext>Credential cache на контроллерах домена, в целом, не поддерживается.
Его нужно переключать на файловый (default или tmpfile):

# control krb5-conf-ccache help
[sudo] password for sin:
keyring: Keyring persistent cache stored in unswappable kernel memory
tmpfile: Traditional, simplest and most portable cache stored in temporary file
rundir: Directory cache stored in run-time variable data
kcm: Kerberos credential manager (requires service like sssd-kcm)
default: Default credential cache (usualy same as temporary file)

Но это никак не решит &quot;проблему&quot;.
Да и проблема ли это?

В текущем коде синхронизация для keytab&apos;ов на контроллерах домена просто не предусмотрена. Её можно припилить. Возможно, это ошибка.

Но вот вопрос: &quot;А нужен ли он?&quot;
Очевидно, что для каких-то задач нужен.
А вот для работы в домене этот файл вовсе не нужен.

Удалив некоторые &quot;лишние&quot; детали мне удалось и без этого файла запустить gpupdate на КД:
https://github.com/altlinux/gpupdate/tree/cleanup_machine_account

С точки же зрения безопасности наличие этого файла никак не может быть обязательным. Но как опцию нужно чинить. В апстриме про такой функционал на КД просто забыли/забили или намеренно удалили - это пока не ясно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269917</commentid>
    <comment_count>6</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2025-07-27 21:39:51 +0300</bug_when>
    <thetext>В общем, всё это отломано из-за появления новой фичи:
https://wiki.samba.org/index.php/Samba_4.21_Features_added/changed

Повесил по этому поводу багу:
https://bugzilla.samba.org/show_bug.cgi?id=15886

Что, по сути, отломано?
Отломано создание keytab-файлов (синхронизация) для контроллеров доменов.
Работать по новой логике синхронизация keytab&apos;ов может только на &quot;обычных&quot;
узлах с ролью ROLE_DOMAIN_MEMBER.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269920</commentid>
    <comment_count>7</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2025-07-27 23:54:09 +0300</bug_when>
    <thetext>samba-4.21.7-alt3 -&gt; sisyphus:

Sun Jul 27 2025 Evgeny Sinelnikov &lt;sin@altlinux&gt; 4.21.7-alt3
- Fix keytab sync regression for domain controllers (closes: 55111)
- Backport fixes from upstream (Samba#15863, Samba#15840):
 + rpc registry: add ProductType for AD DC
 + s3-net: fix &quot;net ads kerberos&quot; krb5ccname handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269979</commentid>
    <comment_count>8</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-07-28 17:47:14 +0300</bug_when>
    <thetext>В [p11+387440.6] [sisyphus] samba-4.21.7-alt3 поведение изменилось.

* Ошибка как таковая не воспроизводится: keytab-файл создаётся.
* Ошибка https://bugzilla.altlinux.org/51359 также не воспроизводится: нет ошибок &quot;kerberos_kinit_password SAMBA@SAMBA.TESTDOMAIN failed: Client not found in Kerberos database&quot;, которые есть в p11.

Однако теперь для создания keytab не требуется авторизация.

Подробнее:

Ожидаемо, работает пункт 3 из комментарий #3 (немного модифицированный для более точной проверки):

3. # rm -fv /etc/krb5.keytab &amp;&amp; \
    kinit Administrator &amp;&amp; \
    klist &amp;&amp; \
    net ads keytab create &amp;&amp; echo &quot;ok&quot; || echo &quot;not ok&quot;; \
    klist -k; \
    net ads keytab list

&gt; Password for Administrator@SAMBA.TESTDOMAIN:
&gt; Warning: Your password will expire in 41 days on Пн 08 сен 2025 13:18:02
&gt; Ticket cache: KEYRING:persistent:0:0
&gt; Default principal: Administrator@SAMBA.TESTDOMAIN
&gt;
&gt; Valid starting       Expires              Service principal
&gt; 28.07.2025 17:39:39  29.07.2025 03:39:39  krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN
&gt; 	renew until 04.08.2025 17:39:37
&gt; ok
&gt; Keytab name: FILE:/etc/krb5.keytab
&gt; KVNO Principal
&gt; ---- --------------------------------------------------------------------------
&gt;    1 DC$@SAMBA.TESTDOMAIN
&gt;    ...
&gt;    1 host/DC@SAMBA.TESTDOMAIN
&gt; Vno  Type                                        Principal
&gt;   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     DC$@SAMBA.TESTDOMAIN
&gt;   ...
&gt;   1  ArcFour with HMAC/md5                       host/DC@SAMBA.TESTDOMAIN

Работает и пункт 4, но не запрашивает пароль администратора домена (вход на DC выполнен по SSH под пользователем root):

4. # rm -fv /etc/krb5.keytab &amp;&amp; \
    kdestroy &amp;&amp; \
    net ads keytab create -UAdministrator &amp;&amp; echo &quot;ok&quot; || echo &quot;not ok&quot;; \
    klist -k; \
    net ads keytab list

&gt; удалён &apos;/etc/krb5.keytab&apos;
&gt; ok
&gt; Keytab name: FILE:/etc/krb5.keytab
&gt; KVNO Principal
&gt; ---- --------------------------------------------------------------------------
&gt;    1 DC$@SAMBA.TESTDOMAIN
&gt;    ...
&gt;    1 host/DC@SAMBA.TESTDOMAIN
&gt; Vno  Type                                        Principal
&gt;   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     DC$@SAMBA.TESTDOMAIN
&gt;   ...
&gt;   1  ArcFour with HMAC/md5                       host/DC@SAMBA.TESTDOMAIN

Можно даже не указывать `-UAdministrator`.

В p11 в случае 4 при выполнении `net ads keytab create` пароль запрашивается, и если ввести неправильный, создание keytab-файла не происходит.

Кажется, что такое поведение может как-то быть связано с исправлением в gpupdate-0.13.3-alt1 ошибки https://bugzilla.altlinux.org/55324 (суть: запрос пароля стал появляться с исправлением в samba-4.21.7-alt2 ошибки https://bugzilla.altlinux.org/55238), но с другой стороны, gpupdate тут должен быть не при чём?

Прошу уточнить, является ли отсутствие запроса пароля администратора домена при выполнении `net ads keytab create` на DC корректным поведением. Пока переоткрываю ошибку - если поведение корректное, прошу закрыть.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270009</commentid>
    <comment_count>9</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2025-07-29 10:38:14 +0300</bug_when>
    <thetext>Да, пароль (хотя, скорее, имеются в виду Kerberos/NTLM &quot;креды&quot;) не нужен. Синхронизация keytab - это просто копирование.

Сам пароль машины лежит в secrets.tdb в каталоге /var/lib/samba/private/.
В службе каталогов лежит, всё равно, только хеш.

Детали могут быть разные, но это уже будет другая история.
Например, при выполнении &quot;net ads keytab add&quot; требуются ли &quot;креды&quot; и для какой учётки?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270036</commentid>
    <comment_count>10</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-07-29 16:05:18 +0300</bug_when>
    <thetext>Спасибо.

При выполнении `kdestroy &amp;&amp; net ads keytab add` в [p11] никакие credentials не требуются, команда успешно завершается с выводом &quot;Processing principals to add...&quot;. 

(В [p11+387440.6] [sisyphus] убедиться нет возможности из-за https://bugzilla.altlinux.org/55376.)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>