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, то это тоже упростит написание универсальных сценариев.
PROGRAMFILES="/usr/bin" Так, наверное, лучше было бы.
Список допустимых переменных (для систем ОС «Альт») есть в документации: https://docs.altlinux.org/ru-RU/alt-domain/11.0/html/alt-domain/folders.html
К сожалению, их не достаточно.
(Ответ для itteh на комментарий #3) > К сожалению, их не достаточно. Работа в этом направлении ведётся. В планах — добавление поддержки самых частых переменных, которые имеют смысл в Linux-контексте. Следите за обновлениями.
(Ответ для Шевченко Денис на комментарий #4) > (Ответ для itteh на комментарий #3) > > К сожалению, их не достаточно. > > Работа в этом направлении ведётся. > В планах — добавление поддержки самых частых переменных, которые имеют смысл > в Linux-контексте. Следите за обновлениями. Благодарю!
Воспроизводится в Sisyphus, версия gpupdate-0.13.4-alt1 Переквалифицировал данную ошибку в Feature Request, так как в документации (например, https://docs.altlinux.org/ru-RU/alt-domain/11.0/html/alt-domain/folders.html) указаны переменные, которые обрабатываются политиками на данный момент.
Created attachment 19595 [details] Доработка функций expand_windows_var и transform_windows_path В функцию expand_windows_var добавлены дополнительные переменный из Windows. Так же исправлена корректная замена переменных Windows за счёт использования регулярного выражения без привязки к регистру. В transform_windows_path применено безусловная замена "\" на "/". Старое поведение обрабатывало только пути, заканчивающие на "exe".
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/".
Предложенные исправления подготовлены для gpupdate-0.13.2-alt1.noarch из Альт Линукс р10. В р11 эти правки так же работают.