Bah hélas, ça semble confirmer que le cafouillage vient du partage d'un même /home/$USER entre plusieurs OS et environnements
( puisqu'un nouvel /home/$USER - celui de
novy - lui qui n'est utilisé que dans 20.04 et partagé avec aucun autre OS ou environnement, fonctionne comme espéré ).
Donc seule solution à cela, réorganiser complètement tes données pour « mieux » séparer d'un côté les données systèmes ( à cloisonner ) et d'un autre les données « humaines » ( à partager ).
Ça n'aurait rien de très compliqué - mais à distance, par forum interposé, on aura vite fait d'oublier quelque chose ou de risquer un problème d'interprétation quelconque.
Ci-après, 2 stratégies visant à séparer les données
purement humaines des données
humaines mais avec un impact sur le système.
La première est d'ores et déjà applicable à ta situation ( /home séparé ).
La seconde est plus facile à gérer à long terme ( mais en partant de ta situation nécessiterait quelques manipulations préalables ).
_________________________
Le contexte c'est un pc dans lequel on veut
utiliser plusieurs OS tout en retrouvant dans chacun d'eux les mêmes « affaires personnelles » ( Bureau, Documents, Images, etc_etc ), et possiblement pour chaque utilisateur potentiel.
L'idée générale c'est de traiter
indépendamment les OS et les affaires personnelles.
Pourquoi une partition /home séparée mais commune à plusieurs OS n'est-elle pas la meilleure idée dans ce cas ?
⋅ Le /home contient les répertoires personnels des $USER. Dans chacun de ces répertoires il y a donc { Bureau, Documents, Images, etc_etc } mais aussi
cachées toutes les config's logicielles relatives à
cet $USER dans
tel système.
⋅ La partie { Bureau, Documents, Images, etc_etc } de ce dossier $USER est tout à fait partageable entre plusieurs systèmes : ce sont les fichiers et dossiers créés par $USER, pour $USER, ils n'ont aucun impact sur le
fonctionnement du système sous-jacent.
⋅ Par contre la partie { config's logicielles } de cet $USER, elle, est liée au système, à son environnement, à ses versions de logiciels installés. Cette partie de /home/$USER découle d'une part spécifiquement du système auquel $USER est connecté et d'autre part a un impact sur le fonctionnement du système sous-jacent ( comment tu as réglé tes panels, ton dock, tes raccourcis, le style, les icônes, tes préférence dans LibreOffice, ou celles du terminal, de Gimp, d'un éditeur de textes, etc_etc ).
D'où la nécessité absolue de ne surtout pas partager des /home/$USER entre divers OS :
⋅ Cela ne poserait certes pas de problèmes pour la partie { Bureau, Documents, Images, etc_etc } puisque ces contenus n'ont pas d'impact sur le fonctionnement du système.
⋅ Mais par contre tôt ou tard ça posera inévitablement problème sur la partie { config's logicielles } : d'un OS à l'autre, ces config's perso vont nécessairement différer tout en utilisant un certains nombre de fichiers communs pour consigner leurs infos. Et c'est là que des couacs vont commencer à apparaître : ce qu'écrira là MX ne sera pas forcément bon pour U20.04, ce qu'écrira là U18.04 ne sera pas bon pour MX, etc, à multiplier par la combinaison du nombre d'OS en jeu…
Donc on fait comment pour éviter la cacophonie des config's ?
Il y a plusieurs stratégies, avec le même objectif : isoler les données humaines ( sans impact sur le système ) des données
avec impact sur le système.
STRATÉGIE 1 : Puisque chez toi il y a déjà une partition /home séparée, déjà montée dans chaque OS
1⋅ il s'agirait dans chaque OS de créer un nouvel utilisateur dédié.
Par exemple dans U20.04 tu utiliseras toujours la session nouvellement créée
novy,
dans MX tu utiliseras toujours la session nouvellement créée
novy-mx,
dans U18.04 tu utiliseras toujours la session nouvellement créée
novy-18.
→
cette idée d'utilisateurs dédiés par système est très importante, c'est elle qui garantit la séparation des données avec ou sans impact sur le système !
2⋅ faire en sorte que novy, novy-mx, novy-18 aient les mêmes uid/gid [ pense-bête à mon attention :
https://muffinresearch.co.uk/linux-changing-uids-and-gids-for-user/ ]
→ à partir de ce moment novy, novy-mx et novy-18 ont tous les 3 les mêmes droits sur les 3 dossiers /home/{novy, novy-mx, novy-18} ce qui est
pratique pour partager la partie visible { Bureau, Documents, Images, etc_etc } entre ces trois sessions.
3⋅ éventuellement rapatrier chez un de ces utilisateurs nouveaux les documents humains
visibles sans impact sur le système { Bureau, Documents, Images, etc_etc } et chez les 2 autres remplacer les dossiers { Bureau, Documents, Images, etc_etc } par des liens symboliques qui ciblent ce qu'on a stocké chez le premier.
→
on ne touche pas aux fichiers cachés ( les configurations diverses ) ça, ça reste sagement chacun chez soi.
C'est une stratégie tenable dans le cas d'un /home séparé commun à plusieurs OS - tant qu'il n'y a pas trop d'utilisateurs en jeu dans chaque système.
Un utilisateur par système → un dossier $USER par système → soit 3 dossiers distincts dans /home → c'est gérable
3 utilisateurs par système → un dossier $USER par système → soit 9 dossiers distincts dans /home → ça commence à compliquer les manipulations…
STRATÉGIE 2 : avec /home inclus classiquement à chaque système MAIS une partition séparée uniquement pour les datas humaines sans impact sur le système
Le principe reste le même, isoler les données humaines ( sans impact sur le système ) des données
avec impact sur le système sauf que cette fois c'est uniquement les données visibles et sans impact qu'on range dans une partition dédiée.
L'avantage de cette solution c'est qu'à la longue elle engendre beaucoup moins de dossiers et d'utilisateurs à gérer.
1⋅ d'un côté de son ou ses disques on créée une partition ± 40 Go par système à installer. On installe chaque système classiquement, une racine / complète par partition
→ chaque système a donc son dossier /home inclus dédié, avec dedans les dossiers $USER contenant les config's cachées propres à chaque couple système-utilisateur,
→ autrement dit il n'y a plus à se demander
quel utilisateur va bien
avec quel système, il y a d'office des utilisateurs cloisonnés
par système.
2⋅ d'un autre côté on se garde une grosse partition ( appelons-la USERS-DATA ) dans laquelle on met à la racine un dossier par $USER potentiel, appartenant à chaque $USER : un dossier pour l'utilisateur d'uid 1000, un dossier pour l'utilisateur d'uid 1001, un dossier pour l'utilisateur d'uid 1002, etc. Dans chacun de ces dossiers on stocke uniquement les { Bureau, Documents, Images, etc_etc } de chacun, mais
pas les fichiers cachés de config's.
→ là, chaque utilisateur a son propre dossier à lui et lui seul, pour ranger ses données à lui.
3⋅ dans chaque OS on fait monter le contenu de la grosse partition USERS-DATA dans un emplacement opportun, par exemple /media/USERS-DATA
→ à partir de là, un utilisateur d'uid XXXX,
depuis n'importe quel système, a accès à tout ce qui se trouve dans le dossier appartenant à l'$USER d'uid XXXX dans la grosse partition USERS-DATA.
→
optionnellement on peut dans chaque /home/$USER_XXXX de chaque OS remplacer les dossiers { Bureau, Documents, Images, etc_etc } par des liens symboliques qui ciblent /media/USERS-DATA/$USER_XXXX/{ Bureau, Documents, Images, etc_etc }
Avantages de la stratégie 2 sur la 1 :
⋅ On a un emplacement qui contient toutes les données perso des utilisateurs, sans impact sur le système ( facile à sauvegarder, clôner, récupérer, réorganiser, déplacer si besoin ) → la partition dédiée USERS-DATA.
⋅ On n'a jamais là qu'un seul dossier par utilisateur ( un utilisateur = une uid, même si le nom en toutes lettres est différent d'un OS à l'autre ), quel que soit le nombre de systèmes qui viendront y piocher des données.
⋅ Dans chaque système on continue d'avoir un emplacement dédié par utilisateur pour ses config's, associées au système adéquat → dans chaque /home/$USER → c'est bien cloisonné !
⋅ Puisque les systèmes ne contiennent pas directement les { Bureau, Documents, Images, etc_etc } des divers $USER, tu peux triturer, modifier, casser, supprimer, réinstaller des systèmes à ta guise sans craindre de perdre ces données perso.
⋅ Elle requiert moins de manipulations : une fois par système, s'assurer que la grosse partition monte bien automatiquement dès le démarrage + une fois par
nouvel utilisateur qu'on souhaiterait ajouter, lui créer un dossier qui lui appartient dans la grosse partition USERS-DATA ( l'astuce des liens symboliques n'étant qu'un confort optionnel, facultatif ).
⋅ S'il faut ensuite organiser des partages de données entre divers
utilisateurs, il n'y a qu'à gérer les droits et permissions adéquates dans la partition USERS-DATA + ajouter des
utilisateurs (uid) à un ou des
groupes (gid) dans le ou les OS souhaités.
⋅ Dans mon exemple on va dire que j'ai strictement séparé l'aspect
config's-utilisateur de l'aspect
données-utilisateur mais rien n'interdit de partager le profil d'un logiciel donné pour un utilisateur donné en le stockant dans le dossier de l'$USER en question dans la partition USERS-DATA ( par ex. les profils de Firefox ou Thunderbird ou autres ). C'est complètement « granulaire » et adaptable.
⋅ Dans le même ordre d'idées on peut aussi mettre en commun entre plusieurs systèmes
certaines ressources ( par ex. un dossier de polices de caractères, ou de fonds d'écrans, que tu voudrais retrouver dans tous tes OS )…
Inconvénients ?
⋅ Elle ne met
bien sûr pas complètement à l'abri du mauvais usage d'un système ( par ex. cumuler sous un seul $USER des environnements de bureau différents → sous ×buntu ça reste peu recommandable ).
⋅ Si elle est plutôt simple à mettre en place quand on y pense dès le départ au moment de l'installation, elle demandera un peu de gymnastique « après coup ». Mais ça reste complètement faisable de passer d'un système bâti en stratégie 1 vers un système en stratégie 2, c'est juste un jeu de chaises musicales en quelque sorte.
_____________________
Il existe sans doute d'autres stratégies. Mais je dirais que ces 2 là sont les plus courantes pour :
⋅ une machine,
⋅ plusieurs OS Linux,
⋅ un ou plusieurs utilisateurs.
On agirait autrement si un Windows traînait dans les parages.
Ou si on a plusieurs ordi sur un réseau local, dont l'un ferait office de serveur pour les autres…
Je n'ai pas abordé non plus l'aspect matériel, car la nature des disques favorisera aussi une stratégie plutôt que l'autre.
😃