Bug 55948 - [FR] Дополнительные Windows-переменные окружения в групповых политиках в Linux окружении
Summary: [FR] Дополнительные Windows-переменные окружения в групповых политиках в Linu...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: gpupdate (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 critical
Assignee: Valery Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-09-11 14:47 MSK by itteh
Modified: 2025-09-19 09:33 MSK (History)
5 users (show)

See Also:


Attachments
Один из примеров групповой политики (36.46 KB, image/png)
2025-09-11 14:47 MSK, itteh
no flags Details
Доработка функций expand_windows_var и transform_windows_path (2.12 KB, patch)
2025-09-19 09:14 MSK, itteh
no flags Details | Diff
Доработка функции read_shortcuts (3.15 KB, patch)
2025-09-19 09:25 MSK, itteh
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description itteh 2025-09-11 14:47:46 MSK
Created attachment 19521 [details]
Один из примеров групповой политики

Имеется домен AD. В качестве ОС на рабочих станций выступают Windows и Alt Linux 10.
Имеются групповые политики для распространения различных файлов на рабочие станции и создание ярлыков к этим файлам, изначально написанные для Windows, параметры могут быть установлены как для Компьютера, так и для Пользователя. В качестве путей активно используются переменные окружения, в частности:

ALLUSERSPROFILE
COMPUTERNAME
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
PROGRAMDATA
PROGRAMFILES
PROGRAMFILES(x86)
SYSTEMDRIVE
SYSTEMROOT
USERDOMAIN
USERNAME
USERPROFILE
WINDIR
TEMP
TMP

При применении групповых политик на АльтЛинукс можно наблюдать ситуацию, что в профиле пользователя или в корне создаются директории вида '%<имя_переменной>%', в которые кладутся файлы, а у созданных ярлыков в качеству путей указаны переменные Windows как есть.

При этом переменная %DesktopDir% отрабатывается нормально.

Чтобы подобные групповые политики бесшовно применялись на Windows и на Аль Линуксе, необходимо либо внедрить в Альт Линукс обработку wmi-фильтров, либо корректно обрабатывать большинство переменных Windows как аналогичные пути в Linux.

Например на такие:
ALLUSERSPROFILE="/usr/local/share"
COMPUTERNAME="$(hostname)"
HOMEDRIVE="/"
HOMEPATH="$HOME"
LOCALAPPDATA="$HOME/.local/share"
PROGRAMDATA="/usr/local/share"
PROGRAMFILES="/usr/local"
PROGRAMFILES(x86)="$PROGRAMFILES"
SYSTEMDRIVE="/"
SYSTEMROOT="/"
USERDOMAIN="$(hostname -d)"
USERNAME="$USER"
USERPROFILE="$HOME"
WINDIR="/usr"

Так же если данные переменные станут доступны в качестве переменных окружения в профиле пользователя или root, то это тоже упростит написание универсальных сценариев.
Comment 1 itteh 2025-09-11 14:52:20 MSK
PROGRAMFILES="/usr/bin"
Так, наверное, лучше было бы.
Comment 2 Шевченко Денис 2025-09-12 11:12:48 MSK
Список допустимых переменных (для систем ОС «Альт») есть в документации:
https://docs.altlinux.org/ru-RU/alt-domain/11.0/html/alt-domain/folders.html
Comment 3 itteh 2025-09-12 11:55:55 MSK
К сожалению, их не достаточно.
Comment 4 Шевченко Денис 2025-09-16 15:18:44 MSK
(Ответ для itteh на комментарий #3)
> К сожалению, их не достаточно.

Работа в этом направлении ведётся.
В планах — добавление поддержки самых частых переменных, которые имеют смысл в Linux-контексте. Следите за обновлениями.
Comment 5 itteh 2025-09-16 16:27:56 MSK
(Ответ для Шевченко Денис на комментарий #4)
> (Ответ для itteh на комментарий #3)
> > К сожалению, их не достаточно.
> 
> Работа в этом направлении ведётся.
> В планах — добавление поддержки самых частых переменных, которые имеют смысл
> в Linux-контексте. Следите за обновлениями.

Благодарю!
Comment 6 Evgeny Shesteperov 2025-09-16 21:21:07 MSK
Воспроизводится в Sisyphus, версия gpupdate-0.13.4-alt1

Переквалифицировал данную ошибку в Feature Request, так как в документации (например, https://docs.altlinux.org/ru-RU/alt-domain/11.0/html/alt-domain/folders.html) указаны переменные, которые обрабатываются политиками на данный момент.
Comment 7 itteh 2025-09-19 09:14:31 MSK
Created attachment 19595 [details]
Доработка функций expand_windows_var и transform_windows_path

В функцию expand_windows_var добавлены дополнительные переменный из Windows. Так же исправлена корректная замена переменных Windows за счёт использования регулярного выражения без привязки к регистру.

В transform_windows_path применено безусловная  замена "\" на "/". Старое поведение обрабатывало только пути, заканчивающие на "exe".
Comment 8 itteh 2025-09-19 09:25:50 MSK
Created attachment 19596 [details]
Доработка функции read_shortcuts

Теперь в для Exec и Icon так же заменяются переменные Windows на пути Linux. Если конечный файл для Exec не является исполняемым или начинается с протоколов http, https, ftp, file, то для таких путей добавляется xdg-open, что позволяет корректно создавать ярлыки для документов, веб-страниц или файлов приложений (например, можно распространять готовые rdp-файлы для терминальных подключений, телефонные справочники и т.п.).

К сожалению, xdg не может корректно работать с файлами, размещёнными в сетевых папках по протоколу smb. В частности, для KDE открывается Dolphin, но крайне криво из-за того, что Dolphin пытается открыть файл как каталог по пути "smb://fileserver/share_dir/file.docx/".
Comment 9 itteh 2025-09-19 09:33:22 MSK
Предложенные исправления подготовлены для gpupdate-0.13.2-alt1.noarch из Альт Линукс р10. В р11 эти правки так же работают.