Bug 54590 - XDG переменная XDG_DESKTOP_DIR более не указывает на "Рабочий стол"
Summary: XDG переменная XDG_DESKTOP_DIR более не указывает на "Рабочий стол"
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gpupdate (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Danila Skachedubov
QA Contact: qa-sisyphus
URL:
Keywords:
: 57267 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-06-02 09:26 MSK by Anton Shevtsov
Modified: 2026-04-23 19:13 MSK (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Shevtsov 2025-06-02 09:26:33 MSK
месяца 3-4-5 как команда xdg-user-dir DESKTOP возвращает не "Рабочий стол"

[domainuser2@host-15 ~]$  xdg-user-dir DESKTOP
/home/TEST.ALT/domainuser2/Рабочий стол

А Desktop 
[domainuser1@host-15 ~]$ xdg-user-dir DESKTOP
/home/TEST.ALT/domainuser1/Desktop

и, как следствие, у ГП неадекватно ведут себя (или тот же shared-desktop-icons), в проводнике Caja если выбрать Рабочий стол - нельзя создать ничего. Глобального /etc/skel/.config/user-dirs.dirs нет, в /etc/xdg/user-dirs.{conf,default} ожидаемые english названия папок.

Воспроизвести достаточно просто. У продолжительного существующего пользователя вывести cat   ~/.config/user-dirs.dirs 

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="$HOME/Рабочий стол"
XDG_DOWNLOAD_DIR="$HOME/Загрузки"
XDG_TEMPLATES_DIR="$HOME/Шаблоны"
XDG_PUBLICSHARE_DIR="$HOME/Общедоступные"
XDG_DOCUMENTS_DIR="$HOME/Документы"
XDG_MUSIC_DIR="$HOME/Музыка"
XDG_PICTURES_DIR="$HOME/Изображения"
XDG_VIDEOS_DIR="$HOME/Видео

затем переименовать его домашнюю папку, чтобы профиль создался заново и зайти снова , вывод уже будет таким cat   ~/.config/user-dirs.dirs 

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Загрузки"
XDG_TEMPLATES_DIR="$HOME/Шаблоны"
XDG_PUBLICSHARE_DIR="$HOME/Общедоступные"
XDG_DOCUMENTS_DIR="$HOME/Документы"
XDG_MUSIC_DIR="$HOME/Музыка"
XDG_PICTURES_DIR="$HOME/Изображения"
XDG_VIDEOS_DIR="$HOME/Видео
Comment 1 Anton Shevtsov 2025-06-02 09:37:27 MSK
если создать в /etc/skel/.config глобальный user-dirs.dirs, то Рабочий стол появляется, но принадлежащий руту

[domainuser1@host-15 ~]$ cat /etc/skel/.config/user-dirs.dirs 
XDG_DESKTOP_DIR="$HOME/Рабочий стол"
XDG_DOWNLOAD_DIR="$HOME/Загрузки"
XDG_TEMPLATES_DIR="$HOME/Шаблоны"
XDG_PUBLICSHARE_DIR="$HOME/Общедоступные"
XDG_DOCUMENTS_DIR="$HOME/Документы"
XDG_MUSIC_DIR="$HOME/Музыка"
XDG_PICTURES_DIR="$HOME/Изображения"
XDG_VIDEOS_DIR="$HOME/Видео"

[domainuser1@host-15 ~]$ ll ~/ | grep Рабочий
drwxr-xr-x  2 root        root          4096 июн  2 11:31 Рабочий стол/

[domainuser1@host-15 ~]$ xdg-user-dir DESKTOP
/home/TEST.ALT/domainuser1/Рабочий стол

[domainuser1@host-15 ~]$ cat ~/.config/user-dirs.dirs
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="$HOME/Рабочий стол"
XDG_DOWNLOAD_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"
Comment 2 Anton Shevtsov 2025-06-02 09:46:06 MSK
При изменении глобального /etc/xdg/user-dirs.defaults

[domainuser1@host-15 ~]$ cat /etc/xdg/user-dirs.defaults
# Default settings for user directories
#
# The values are relative pathnames from the home directory and
# will be translated on a per-path-element basis into the users locale
DESKTOP=Рабочий стол
DOWNLOAD=Downloads
TEMPLATES=Templates
PUBLICSHARE=Public
DOCUMENTS=Documents
MUSIC=Music
PICTURES=Pictures
VIDEOS=Videos
# Another alternative is:
#MUSIC=Documents/Music
#PICTURES=Documents/Pictures
#VIDEOS=Documents/Videos

не происходит его применение
[domainuser1@host-15 ~]$ xdg-user-dir DESKTOP
/home/TEST.ALT/domainuser1/Desktop

[domainuser1@host-15 ~]$ ll ~/ | grep Desktop
drwxr-xr-x  2 root        root         4096 июн  2 11:43 Desktop/
Comment 3 Anton Shevtsov 2025-06-02 11:51:56 MSK
пока победил вот так.. в /etc/xdg/user-dirs.defaults гвоздями прибил и в /etc/X11/profile.d/xdg-user-dirs.sh форсированный апдейт

[sogouser1@host-15 Рабочий стол]$ grep DESKTOP /etc/xdg/user-dirs.defaults
DESKTOP=Рабочий стол

[sogouser1@host-15 Рабочий стол]$ cat /etc/X11/profile.d/xdg-user-dirs.sh 
#!/bin/sh
# Copyright (C) 2007 Red Hat, Inc. All rights reserved. This
# copyrighted material is made available to anyone wishing to use, modify,
# copy, or redistribute it subject to the terms and conditions of the
# GNU General Public License version 2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
if [ -x /usr/bin/xdg-user-dirs-update ]; then
   # /usr/bin/xdg-user-dirs-update
    /usr/bin/xdg-user-dirs-update --force
fi
Comment 4 Белая Алёна 2025-06-16 16:48:43 MSK
Антон, добрый день!

Есть ли какой-то способ воспроизвести проблему не для "продолжительно существующего" пользователя? Проверки проводила для доменов на Sisyphus и на Р10, ни там, ни там проблема не воспроизводится. 
Попробовала воспроизвести для доменных пользователей в недавно созданном домене, воспроизвести не получилось. Также попробовала поменять время (и на контроллере домена, и на рабочей станции) чтобы искусственно "состарить" пользователя, однако проблему опять же воспроизвести не смогла. 
Попробовала провести несколько манипуляций с директориями и затем сбросить изменения с помощью команды:
$ xdg-user-dirs-update --force

сброс настроек возвращает "Рабочий стол" в качестве рабочего стола. 

Изменение файла /etc/xdg/user-dirs.defaults корректно отрабатывает для заново создающихся домашних директорий пользователей. 

Для локальных пользователей переименование домашней директории приводит к тому, что под этим пользователем нельзя зайти в систему.
Comment 5 Anton Shevtsov 2025-06-16 18:42:23 MSK
(Ответ для Белая Алёна на комментарий #4)
> Антон, добрый день!
> 
> Есть ли какой-то способ воспроизвести проблему не для "продолжительно
> существующего" пользователя? Проверки проводила для доменов на Sisyphus и на
> Р10, ни там, ни там проблема не воспроизводится. 
> Попробовала воспроизвести для доменных пользователей в недавно созданном
> домене, воспроизвести не получилось. Также попробовала поменять время (и на
> контроллере домена, и на рабочей станции) чтобы искусственно "состарить"
> пользователя, однако проблему опять же воспроизвести не смогла. 
> Попробовала провести несколько манипуляций с директориями и затем сбросить
> изменения с помощью команды:
> $ xdg-user-dirs-update --force
> 
> сброс настроек возвращает "Рабочий стол" в качестве рабочего стола. 
> 
> Изменение файла /etc/xdg/user-dirs.defaults корректно отрабатывает для
> заново создающихся домашних директорий пользователей. 
> 
> Для локальных пользователей переименование домашней директории приводит к
> тому, что под этим пользователем нельзя зайти в систему.

А я не знаю. Просто в один момент при очередном обновлении п10, стало так.
Нашел в РМ #121341 такую же проблему
Comment 6 Белая Алёна 2025-06-17 13:10:05 MSK
Можете пожалуйста уточнить следующую информацию:
1. Какой домен у вас развернут? Samba, FreeIPA, AD?
2. Какие операционные системы используются в качестве контроллера домена и в качестве клиента? 
3. Какие версии пакетов xdg-user-dir и домена? 
4. Что показывает вывод команды $ locale для доменного пользователя?
Comment 7 Белая Алёна 2025-06-18 14:23:30 MSK
Воспроизведено в Sisyphus, версии пакетов:
samba-4.20.8-alt2
gpupdate-0.13.2-alt1
xdg-user-dirs-0.18-alt2

стенды:
Alt Server 11, обновленный до Sisyphus, в качестве контроллера домена
Alt Workstation K 11, обновленный до Sisyphus, в качестве клиента

Ошибку удалось воспроизвести по следующим шагам: 
1. Развернуть домен Samba с групповыми политиками и ввести клиента в домен с включением групповых политик
2. Создать двух пользователей в домене, например, testuser и testuser1
3. Зайти одним из пользователей (например testuser) на машину клиента и открыть admc: 
$ kinit administrator
$ admc
4. Во вкладке "Объекты групповых политик" выбрать политику Default Domain Policy (или создать любую другую политику), ПКМ на политику -> Изменить
5. В открывшемся GPUI создать политику Значки: <domainname> -> Компьютер -> Настройки -> Настройки системы -> Значки -> ПКМ на области справа -> Новый -> Создать -> Указать любые данные. Место нахождения указать как "Рабочий стол" -> Сохранить изменения
6. Перезагрузить систему 
7. После перезагрузки зайти в систему доменным пользователем, которым вход еще не выполнялся (например testuser1)
8. Выполнить команду:
$ xdg-user-dir DESKTOP 

Результат: 
/home/SAMBA.TESTDOMAIN/testuser1/Desktop

Ожидаемый результат: 
/home/SAMBA.TESTDOMAIN/testuser1/Рабочий стол

В проводнике вместо рабочего стола также указана директория Desktop. 
В файле ~/.config/user-dirs.dirs также указан Desktop вместо 'Рабочий стол'
$ cat .config/user-dirs.dirs 
...
# 
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Загрузки"
XDG_TEMPLATES_DIR="$HOME/Шаблоны"
...

Похоже, что проблема появляется из-за переменной %DesktopDir% в gpupdate, потому что проблема также воспроизводится, если, например, создать через групповые политики папку по пути %DesktopDir%/dir. В /etc/skel после этого появляется папка Desktop, в которой создаются значки/директории из групповых политик. Когда входит новый пользователь, видимо именно эта директория оказывает свое влияние на переменную в xdg-user-dir. 
Также вероятно, что в том числе поэтому для пользователей, уже входивших в систему, директории/значки на рабочем столе не создаются. 
Т.е. проблема, получается, на стыке взаимодействия между xdg-user-dirs и gpupdate.

Прошу @antohami и @greh вместе взглянуть на проблему. Возможно ошибку стоит перевесить на gpupdate.
Comment 8 Антон Мидюков 2025-06-18 15:34:53 MSK
Проблема не в xdg-user-dirs.
Comment 9 Danila Skachedubov 2025-06-19 11:16:24 MSK
Добрый день, в следующей версии gpupdate будет исправлено.
Comment 10 Котюхов Михаил Андреевич 2025-12-19 13:41:42 MSK
*** Bug 57267 has been marked as a duplicate of this bug. ***
Comment 11 Repository Robot 2026-04-23 19:13:02 MSK
gpupdate-0.15.0-alt1 -> sisyphus:

Wed Apr 15 2026 Valery Sinelnikov <greh@altlinux> 0.15.0-alt1
- Added:
  GPP lifecycle management (applyOnce, removePolicy, disabled)
  Targeting filters for GPP preferences (computer, domain, user, group, date)
  Secure permissions and ownership for sensitive paths
  INI file special characters policy support
  INI file edit without section support
  Skip writing INI values that already match target
- Changed:
  Optimized Windows variable expansion (closes:55948)
  Refactored filter checking with caching and thread safety
- Fixed:
  Persist applyOnce flag to dconf so it works across GPOA runs
  Fix systemd unit enabling after unmask (closes:56049, 55954)
  Fix user-dirs.dirs for non-C locales (closes:54590)
  Fix gpupdate-setup help text typo (closes:56674)