Created attachment 13117 [details] до/после патча Добрый день. Для включение ПК/серверов под управлением ОС Альт в домен MS Active Directory (AD) используется встроенный скрипт system-auth из пакета alterator-auth: system-auth write ad domain.local hostname domain username password После включения сервера/ПК в домен в свойствах объекта computer в AD не прописыватся операционная система и версия (см. приложенное изображение, вариант справа). В скрипте system-auth для включения в AD используется команда net ads join ..., в которой можно указать параметры osName и osVersion, которые должны быть прописаны в AD. Как мне видится есть два вариант: 1. Автоопределение текущей версии и передача их в net ads join -- данный вариант приложен в виде патча (см. приложенное изображение, вариант справа). 2. Дополнительные параметры для передачи в скрипт system-auth write ad .... osName="ALT Server" osVersion="10.1", которые будут дальше передаваться в net ads join. Прошу рассмотреть и добавить данный функционал и в P9, и в P10. Спасибо!
Created attachment 13118 [details] патч для варианта 1
>> После включения сервера/ПК в домен в свойствах объекта computer в AD не прописыватся операционная система и версия (см. приложенное изображение, вариант справа). Следует читать как: После включения сервера/ПК в домен в свойствах объекта computer в AD не прописывается операционная система и версия (см. приложенное изображение, вариант СЛЕВА).
alterator-auth-0.44.2-alt1 -> sisyphus: Sun May 07 2023 Andrey Cherepanov <cas@altlinux> 0.44.2-alt1 - Pass OS name and version diring join to Active Directory (ALT #46071). Thanks Sergey Sysoev.
p9: 320097 FAILED #2 p9 alterator-auth.git=0.44.2-alt0.p9.1 libnss-role.git=0.5.6-alt1 alterator-default-configs.git=0.0.3-alt1 alterator-l10n.git=2.9.122-alt0.c9.1 p10: 320096 EPERM #1 p10 alterator-auth.git=0.44.2-alt1
Предложенный Вами вариант >> IFS=: read -r OS_NAME OS_VER <<<"$(hostnamectl | sed -E -n 's/^.*Operating System: (.*) ([0-9.]+).*$/\1:\2/p')" более лаконичный, но не охватывает вариант стартеркитов. Когда указано, к примеру: Operating System: ALT Starterkit (Hypericum) то переменные OS_NAME, OS_VER остаются незаполненными. Если считаете это не критичным, то можно не обращать внимание.
(Ответ для Сергей Сысоев на комментарий #5) > Предложенный Вами вариант > >> IFS=: read -r OS_NAME OS_VER <<<"$(hostnamectl | sed -E -n 's/^.*Operating System: (.*) ([0-9.]+).*$/\1:\2/p')" > более лаконичный, но не охватывает вариант стартеркитов. > Когда указано, к примеру: > Operating System: ALT Starterkit (Hypericum) > то переменные OS_NAME, OS_VER остаются незаполненными. > > Если считаете это не критичным, то можно не обращать внимание. Неуказание версии у стартеркита является ошибкой. Заведите отдельный баг, пожалуйста.
(In reply to Andrey Cherepanov from comment #6) > Неуказание версии у стартеркита является ошибкой. Заведите отдельный баг, > пожалуйста. Завел баг #46115. Пока экспериментировал, заметил и вспомнил, что hostnamectl идёт из комплекта systemd. Поэтому в Стартеркитах, основанных на SysV, нет ни systemd, ни hostnamectl. Может быть стоит заменить на вариант чтения из файла /etc/os-release вместо hostnamectl? Если вообще дистрибутивы/стартеркиты на SysV имеют какую-то популярность. Например: IFS=: read -r OS_NAME OS_VER <<<"$(cat /etc/os-release | sed -E -n 's/^.*PRETTY_NAME=\"(.*) ([0-9.]+).*\"$/\1:\2/p')"