Impossible de modifier les emplacements des répertoires standards utilisateurs via xdg-user-dirs

Bonjour.

Je viens d’installer debian13 en dual boot sur mon PC avec win11 à côté (que j’utilise encore car : 1- j’ai un programme de djing qui ne fonctionne pas sous wine et qui n’a malheureusement pas encore d’équivalent qualitatif sous linux / 2- pas trouvé de lecteur pdf alternatif à adobe reader et sous linux qui ait la fonction d’impression « livret » – je précise ça au cas où vous ayez des solutions car je ne demande qu’à virer une bonne fois pour toute windows ce qui solutionnerait mon problème au passage).

Pour debian j’ai une seule partition en ext4 pour tout et une swap. KDE comme interface.

J’ai créé une partition ntfs commune pour partager mes données entre les 2 systèmes (pas trouvé comment faire mieux puisque win11 ne peut pas gérer une partition ext4 et qu’en FAT32 je ne pourrais pas stocker des fichiers de plus de 4 Go)
Je la monte automatiquement sous debian via la ligne suivante dans fstab :
UUID=42083F68083F5A5D /mnt/DATA ntfs rw,user,auto 0 0
Ça fonctionne très bien (« pour le moment », car je sais que ntfs et linux ne font pas bon ménage et que tôt ou tard j’aurai probablement des erreurs sur la partition…).

MON SOUCI :
J’aimerais modifier l’emplacement des dossiers utilisateurs standards (Musique, Images, Téléchargements…) pour que ça pointe vers des répertoires situés sur /mnt/DATA.
De ce que j’ai lu le plus propre consiste à modifier le fichier user-dirs.dirs situé dans /home/ilove/.config

Pour tester sur un premier dossier, en l’occurence « Images » qui s’appelle « PICTURES » pour xdg, je modifie la ligne correspondante dans user-dirs.dirs par :
XDG_PICTURES_DIR="/mnt/DATA/Images"

puis j’ai fait :
xdg-user-dirs-update

pour vérifier j’ai tapé la commande :
xdg-user-dir PICTURES
qui me renvoie :
/mnt/DATA/Images

En parallèle j’ai créé un dossier /mnt/DATA/Images (qui appartient à root:root avec des droits 777 pour tous).

Enfin je relance l’ordi.
Malheureusement, dans dolphin quand je clique sur l’emplacement « Images » il me redirige systématiquement vers /home/ilove/Images et non vers /mnt/DATA/Images… :(((

Je ne dois pas comprendre quelque chose…
J’ai bien sûr lu plein de méthodo sur différents sites et je ne vois pas ce que je fais de travers.

Je me suis demandé si le problème venait du fait que mon répertoire /mnt/DATA/Images appartient à root:root mais impossible de changer ça. Les manips via chown que ce soit en sudo ou en su - ne change rien et si j’ai bien compris ça viendrait du fait que c’est une partition ntfs et que linux ne gère pas les permissions sur cette partition mais que ça n’est pas grave car de toute façon il y a toutes les autorisations de lecture/écriture puisque le répertoire est indiqué en 777 pour tout le monde.

Si quelqu’un⋅e a une idée ?
Merci d’avance :slight_smile:

PS : en attendant je fais avec des liens symboliques et ça fonctionne mais bon vu qu’il existe un fichier spécial pour ça je trouve dommage de devoir contourner…

Mettre les répertoire standard utyilisateurs en dehors de ton répertoire utilisateur est une mauvaise idée.

  1. Adobe fonctionne sous linux en utilisant wine semble-t-il Comment installer Adobe Acrobat Reader sur Ubuntu et Debian Linux.
  2. As-tu essayé Mixx comme alternative à Djing sous ton linux?

Le mieux à faire est d’avoir effectivement une partition d’échange entre tes deux systèmes.
Inutile de vouloir avoir tes répertoires systèmes user dans ta partition d’échange, car ne pouvant utiliser que le vfat tu es sur d’avoir des problèmes à termes, donc c’est à bannir. Car FAT est trop pauvre en matière de gestion des droits, des ficheirs etc… vis ç vis de ext4. Donc certaines fonctionnalités systèmes relatif à ton utilisateur risquent de poser problèmes.

Ta partition /mnt/data est ok. Tu créeras tes partitions nécessaires dedans. Quitte dans tes répertoires utilisateurs (coté linux ) de faire un lien symbolique vers ton data à l’intérieur des répertoires concernés (i.e.: un répertoire Images dans /mnt/data, qui sera lié symboliquement avec un répertoire data dans /home/user/Images).

Ça ne sert à rien de faire des partitions Images, etc… dans /mnt/data. Tu fais juste une partition /mnt/data. Ensuite ce sont des liens symbolique entre les répertoires de /mnt/data, vers tes répertoires users.

d’un coté:

  • /mnt/data/Images
  • /mnt/data/Téléchargements
  • /mnt/data/Musiques
    De l’autre:
  • /home/user/Images/Data
  • /home/user/Téléchargements/Data
  • /home/user/Musiques/Data

Salut Zargos,
Merci beaucoup d’avoir pris le temps de répondre.

Pour adobe reader je vais réessayer car mon dernier essai date un peu, peut être que maintenant ça fonctionne…
Pour mixxx, je l’ai essayé mais malheureusement il a un défaut principal c’est que lorsque on accélère ou décélère le tempo ça change la tonalité. Ça les logiciels pro le corrige mais pas mixx et c’est un gros souci quand tu mix :frowning: J’irai aussi y refaire un tour car peut être ça a évolué…

Concernant mon problème je ne parlais pas de créer des partitions pour chaque dossier mais bien des répertoires et j’ai effectivement utilisé le système des liens symboliques comme je marquais en PS de mon post.
Mais quand même vu qu’il existe XDG, script intégré dans debian, fait pour gérer ces dossiers en particulier j’aurais bien aimé pouvoir m’en servir.

Il ne peut pas te servir pour des répertoires à l’extérieur de ton $HOME. ce n’est pas son objectif.
Qui plus est il a une sévère défaillance de sécurité:

**Warning** `xdg-user-dir` should not receive its argument from unchecked input, since it simply passes it to `eval` without performing any sanity checks, in a line that looks like this:

eval echo \${XDG_${1}_DIR:-$HOME}

This means that `xdg-user-dir` facilitates arbitrary code execution from unsanitized input. Unless this unsafe implementation is fixed upstream, `xdg-user-dir` should only ever be used with a hard-coded or strictly audited argument.

FAT est un système de fichier obsolète pour tout ce qui touche à la sécurité et la fiabilité.

Il ne peut pas te servir pour des répertoires à l’extérieur de ton $HOME. ce n’est pas son objectif.

ah? je suis étonné car ce n’est pas ce qui est écrit par exemple ici : https://www.linuxtricks.fr/wiki/gerer-les-repertoires-standards-utilisateur-avec-xdg-user-dirs
Et dans le principe ça m’étonne car justement l’idée d’un tel système c’est de pouvoir si besoin sortir de /home vers une partition data séparée.

enfin bon, sinon les liens symboliques ça va aussi :wink:

Ça marche en dehors du $HOME, mais avec des dossiers appartenant au user (ce qui semble logique) et sur des partitions type ext4. Enfin c’est ce que j’utilise, je veux juste signaler que cela fonctionne très bien.
Ce que tu ne dis pas :

  • après reboot, ta commande xdg-user-dir PICTURES renvoie toujours la même chose ?
  • as-tu essayé avec un autre gestionnaire de fichiers ?
  • as-tu essayé sur un autre dossier qui t’appartient ?
  • as-tu essayé avec un dossier appartenant à root, mais de type ext4, et en 777 ?

C’est comme ça que tu affineras le diag et comprendra où ça bloque.

Si c’est la partition NTFS qui pose problème, alors les liens symboliques résolvant le problème, inutile de chercher plus loin vu que c’est quand même une config atypique d’un point de vue Linux.

merci Pled d’avoir répondu.

  • Oui après reboot la commande xdg-user-dir PICTURES renvoie la même chose, ce qui confirme que c’est bien enregistré dans le fichier de config
  • pour les autres choses non je n’avais pas essayé avec un autre gestionnaire, ni pointé vers un autre dossier, ni encore essayé avec un dossier appartenant à root mais en ext4.

C’est vrai que ce sont de bonnes pistes mais comme vous êtes plusieurs à dire qu’au final avec des liens symboliques c’est très bien et que potentiellement xdg n’est pas fait pour fonctionner avec une partition ntfs, sur laquelle je n’arrive de toute façon pas à changer le propriétaire, je ne vais pas aller plus loin et me contenter de cette solution fonctionnelle.

Encore merci d’avoir répondu :slight_smile: