Bug 55111 - Выполнение net ads keytab create не приводит к созданию keytab-файла на КД
Summary: Выполнение net ads keytab create не приводит к созданию keytab-файла на КД
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: samba (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 55324
Blocks: 51359
  Show dependency tree
 
Reported: 2025-07-09 14:27 MSK by bestar
Modified: 2025-08-04 15:32 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description bestar 2025-07-09 14:27:34 MSK
В процессе развертывание стенда возникла необходимость настройки аутентификации доменных пользователей на контроллерах домена. Настройка проводилась в соответствии с этой инструкцией: https://www.altlinux.org/ActiveDirectory/Login/DC .

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

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

В тоже время при развертывании контроллера домена на p11 ошибка ожидаемо не проявляется.
Comment 1 Evgeny Sinelnikov 2025-07-09 14:48:49 MSK
Это нужно проверить более подробно. Предполагаю, в этом механизме в 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$, 'host' 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.
Comment 2 bestar 2025-07-15 14:36:25 MSK
(Ответ для Evgeny Sinelnikov на комментарий #1)
> Это нужно проверить более подробно. Предполагаю, в этом механизме в
> 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$, 'host' 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.

Действительно, в 4.21 есть указанные изменения поведения. Но, увы, после проведения указанных в мануале изменений в smb.conf проблема осталась нерешенной: net ads create keytab просто ничего не создает.
Comment 3 Artem Varaksa 2025-07-17 12:42:00 MSK
Воспроизвёл данную ошибку.

Шаги
====

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

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

> kerberos method = system keytab

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

> # systemctl restart samba

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

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

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

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


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

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

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


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

> Keytab name: FILE:/etc/krb5.keytab
> klist: Key table file '/etc/krb5.keytab' not found while starting keytab scan


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

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

3.

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


4.

> Password for [SAMBA\Administrator]:
> kerberos_kinit_password SAMBA@SAMBA.TESTDOMAIN failed: Client not found in Kerberos database
> Keytab name: FILE:/etc/krb5.keytab
> KVNO Principal
> ---- --------------------------------------------------------------------------
>    1 host/dc.samba.testdomain@SAMBA.TESTDOMAIN
>    1 host/DC@SAMBA.TESTDOMAIN
> ...
> 1 DC$@SAMBA.TESTDOMAIN
> Vno  Type                                        Principal
>   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     host/dc.samba.testdomain@SAMBA.TESTDOMAIN
>   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     host/DC@SAMBA.TESTDOMAIN
> ...
>   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
Comment 4 Artem Varaksa 2025-07-17 13:21:24 MSK
Вывод в [sisyphus] / [p11+387440] с `# export KRB5_TRACE=/dev/stdout` (подробнее показывает только kinit/kdestroy, но возможно полезно):

3.

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

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

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

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

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

С точки же зрения безопасности наличие этого файла никак не может быть обязательным. Но как опцию нужно чинить. В апстриме про такой функционал на КД просто забыли/забили или намеренно удалили - это пока не ясно.
Comment 6 Evgeny Sinelnikov 2025-07-27 21:39:51 MSK
В общем, всё это отломано из-за появления новой фичи:
https://wiki.samba.org/index.php/Samba_4.21_Features_added/changed

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

Что, по сути, отломано?
Отломано создание keytab-файлов (синхронизация) для контроллеров доменов.
Работать по новой логике синхронизация keytab'ов может только на "обычных"
узлах с ролью ROLE_DOMAIN_MEMBER.
Comment 7 Repository Robot 2025-07-27 23:54:09 MSK
samba-4.21.7-alt3 -> sisyphus:

Sun Jul 27 2025 Evgeny Sinelnikov <sin@altlinux> 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 "net ads kerberos" krb5ccname handling
Comment 8 Artem Varaksa 2025-07-28 17:47:14 MSK
В [p11+387440.6] [sisyphus] samba-4.21.7-alt3 поведение изменилось.

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

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

Подробнее:

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

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

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

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

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

> удалён '/etc/krb5.keytab'
> ok
> Keytab name: FILE:/etc/krb5.keytab
> KVNO Principal
> ---- --------------------------------------------------------------------------
>    1 DC$@SAMBA.TESTDOMAIN
>    ...
>    1 host/DC@SAMBA.TESTDOMAIN
> Vno  Type                                        Principal
>   1  AES-256 CTS mode with 96-bit SHA-1 HMAC     DC$@SAMBA.TESTDOMAIN
>   ...
>   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 корректным поведением. Пока переоткрываю ошибку - если поведение корректное, прошу закрыть.
Comment 9 Evgeny Sinelnikov 2025-07-29 10:38:14 MSK
Да, пароль (хотя, скорее, имеются в виду Kerberos/NTLM "креды") не нужен. Синхронизация keytab - это просто копирование.

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

Детали могут быть разные, но это уже будет другая история.
Например, при выполнении "net ads keytab add" требуются ли "креды" и для какой учётки?
Comment 10 Artem Varaksa 2025-07-29 16:05:18 MSK
Спасибо.

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

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