Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

tutoriel:donnees_ubuntu_dans_logiciel_windows [Le 02/08/2025, 19:20] (Version actuelle)
geole créée
Ligne 1: Ligne 1:
 +===== Présentation =====
 +**Le but est de décrire l'​utilisation de la partition windows contenant le logiciel pour stocker ses données Ubuntu.** ​
  
 +Souvent lors d'une [[:​cohabitation_ubuntu_windows|cohabitation entre Windows et Ubuntu]], une des difficultés que l'on rencontre est l'​accès commun aux données pour les deux systèmes.\\ ​
 +
 +En effet, Windows ne sachant pas nativement lire les partitions [[:​systeme_de_fichiers#​|EXT4]] d'​Ubuntu,​ vous ne pourrez pas, à partir d'un Windows, accéder à vos données stockées sur une partition Ubuntu. ​
 +Il est donc nécessaire:​
 +  * Soit de stocker les données utilisateur dans [[https://​doc.ubuntu-fr.org/​tutoriel/​partitions_communes_windows_ubuntu|une partition commune.]] ​
 +  * Soit de stocker directement les données au même endroit que windows les stocke le plus fréquemment qui est le **C:** déjà existant.
 +
 +Cet article va traiter ​ ce dernier cas. Il est testé dans le contexte suivant Ubuntu 24.04 et windows 10 non chiffré.\\
 +L'​utilisation de ce tuto nécessite la maîtrise du [[https://​doc.ubuntu-fr.org/​terminal|terminal]] ​ et du [[ https://​doc.ubuntu-fr.org/​presse-papier|copier/​coller]]. Il est possible aussi de consulter [[https://​www.youtube.com/​watch?​v=F7LIylN0rZc|ce lien.]] \\ Une bonne connaissance des  [[https://​doc.ubuntu-fr.org/​permissions|autorisation d'​accès]] aux fichiers est un plus
 +
 +Les diverses étapes sont décrites ci-après dans le contexte suivant: ​ un administrateur ubuntu ayant un  nom différant de l'​administrateur windows et facultativement deux utilisateurs standards ayant des noms identiques entre windows et ubuntu. Ce qui n'est pas obligatoire mais simplifie la compréhension.
 +
 +===== Contexte mono_utilisateur. =====
 +C'est le cas simple où il n'​existe qu'un seul utilisateur.\\
 +Il faut d'​abord vérifier que l'​utilisateur ​ est bien référencé avec le n° 1000 en frappant la commande ** id**.\\
 +On monte la partition windows en disant que l'​utilisateur est propriétaire ​ de l'​ensemble des données en ajoutant la description de la partition windows dans le fichier /etc/fstab, en créant le point de montage et en exécutant le montage.\\
 +Exemple avec un windows ayant une étiquette "​windows1"​.
 +<code bash>​echo /​dev/​disk/​by-label/​Windows1 ​ /​media/​Windows1 ​  ​ntfs3 ​ defaults,​auto,​nofail,​force,​windows_names,​uid=1000,​gid=1000 0 0 | sudo tee -a /etc/fstab
 +sudo mkdir -v /​media/​Windows1
 +udisksctl mount -b /​dev/​disk/​by-label/​Windows1
 +df -htntfs3</​code>​
 +C'est quasiment fini.
 +===== Contexte Multi-utilisateur. =====
 +Le contexte développé est le suivant: Chaque utilisateur a le droit de lire les documents de la famille. Quiconque n'​appartenant pas à la famille, n'a aucun droit!
 +==== Création de la famille d'​utilisateurs ====
 +<code bash>​sudo addgroup famille
 +sudo adduser a famille #  l'​utilisateur a  est l'​administrateur ​ ubuntu.
 +sudo adduser enfant1 famille
 +sudo adduser enfant2 famille </​code>​
 +On monte la partition windows en disant que **root** est propriétaire de l'​ensemble en ajoutant la description de la partition windows dans le fichier /etc/fstab, en créant le point de montage et en exécutant le montage. Exemple avec un windows ayant une étiquette "​windows1"​.
 +<code bash>​echo /​dev/​disk/​by-label/​Windows1 ​ /​media/​Windows1 ​  ​ntfs3 ​ defaults,​auto,​nofail,​force,​windows_names 0 0 | sudo tee -a /etc/fstab
 +sudo mkdir -v /​media/​Windows1
 +udisksctl mount -b /​dev/​disk/​by-label/​Windows1
 +df -htntfs3</​code>​
 +==== Installer les permissions. ====
 +Le problème embêtant est que si on définit une bonne fois pour toutes les  autorisations,​ les nouveaux fichiers qui seront créés sous le contrôle de windows, ne seront pas intégrés ​ dans ces autorisations et resteront la propriété de **root**.\\
 +il est donc nécessaire de fabriquer un service système qui affectera les bonnes permissions pour la totalité des fichiers existants à chaque démmarrage de ubuntu.
 +=== Solution simple ===
 +Chaque utilisateur ubuntu accède à la totalité de ses répertoires windows et en lecture à tous les fichiers des autres utilisateurs.
 +<code bash>​sudo su -c 'cat <<​EOF>/​etc/​systemd/​system/​Appairage.service ​
 +[Unit]
 +Description=Appairage ​ des utilisateurs.
 +After=multi-user.target
 +[Service]
 +ExecStartPre=chown -R enfant1:​famille /​media/​Windows1/​Users/​enfant1
 +ExecStartPre=chmod -R 750             /​media/​Windows1/​Users/​enfant1
 +ExecStartPre=chown -R enfant2:​famille /​media/​Windows1/​Users/​enfant2
 +ExecStartPre=chmod -R 750             /​media/​Windows1/​Users/​enfant2
 +ExecStartPre=chown -R a:​famille ​      /​media/​Windows1/​Users/​franc
 +ExecStartPre=chmod ​ -R 750            /​media/​Windows1/​Users/​franc
 +ExecStartPre=chmod -R 777             /​media/​Windows1/​Public
 +ExecStart=echo Appairage réussi.
 +[Install]
 +WantedBy=multi-user.target
 +EOF'</​code>​
 +
 +=== Solution avec un script ===
 +Permet de n'​autoriser que quelques répertoires. ​
 +<code bash>​sudo ​ su -c 'cat <<​EOF>/​etc/​systemd/​system/​Appairage.service
 +[Unit]
 +Description=Appairage ​ des utilisateurs.
 +After=multi-user.target
 +[Service]
 +ExecStart=bash /​home/​a/​Appairage.sh
 +ExecStartPost=echo Appairage réussi.
 +[Install]
 +WantedBy = multi-user.target
 +EOF'</​code>​
 +On définit les répertoires habituels. On peut ne pas prendre tous les répertoires de cette liste.
 +<code bash>cat <<'​EOF'>​$HOME/​Appairage.sh
 +#!/bin/bash
 +PDM=/​media/​Windows1/​Users ​ #Point de montage de la partition windows
 +Appairer () {
 +chown    $1:famille $PDM/$2
 +chmod 750    $PDM/$2
 +chown -R $1:famille $PDM/​$2/​{Desktop,​Documents,​Downloads,​Music,​Pictures,​Videos}
 +chown    $1:famille $PDM/​$2/​AppData
 +chown    $1:famille $PDM/​$2/​AppData/​Roaming
 +chown    $1:famille $PDM/​$2/​AppData/​Roaming/​Microsoft
 +chown    $1:famille $PDM/​$2/​AppData/​Roaming/​Microsoft/​Windows
 +chown -R $1:famille $PDM/​$2/​AppData/​Roaming/​Microsoft/​Windows/​Templates
 +chmod -R 750        $PDM/​$2/​{Desktop,​Documents,​Downloads,​Music,​Pictures,​Videos}
 +chmod -R 750        $PDM/​$2/​AppData/​Roaming/​Microsoft/​Windows/​Templates
 +}
 +Appairer enfant1 enfant1 ​ # Utilisateur ubuntu ​  Puis Utilisateur windows
 +Appairer enfant2 enfant2 ​ # Utilisateur ubuntu ​  Puis Utilisateur windows
 +Appairer a franc          # Utilisateur ubuntu ​  Puis Utilisateur windows
 +# Traiter le répertoire Public.....
 +chmod -R 777 $PDM/Public
 +EOF
 +sleep 1
 +sudo chmod +x $HOME/​Appairage.sh # Autoriser l'​exécution du fichier.</​code>​
 +==== Tester le service ====
 +<code bash>​systemctl ​ stop Appairage.service && systemctl daemon-reload && systemctl enable Appairage.service && systemctl start Appairage
 +ls -l /​media/​Windows1/​Users
 +ls -l /​media/​Windows1/​Users/​enfant1 | grep " enfant"​
 +ls -l /​media/​Windows1/​Users/​enfant2 | grep " enfant"​
 +ls -l /​media/​Windows1/​Users/​franc | grep " a"
 +echo test>/​media/​Windows1/​Users/​franc/​AppData/​Roaming/​Microsoft/​Windows/​Templates/​test.txt
 +echo test>/​media/​Windows1/​Users/​enfant1/​AppData/​Roaming/​Microsoft/​Windows/​Templates/​test.txt
 +head -1 /​media/​Windows1/​Users/​enfant1/​Downloads/​desktop.ini</​code>​
 +==== Rebooter et vérifer l'​exécution ====
 +<code bash>​journalctl --no-pager -b -g appairage
 +systemctl status Appairage </​code>​
 +
 +===== Reste à la charge de chaque utilisateur =====
 +On peut ne pas prendre tous ces répertoires.
 +==== La création des redirections standards et leurs figeages. ====
 + <​code bash>​USER2=$USER #Dans le cas où les deux noms sont identiques ou, dans le cas contraire il faut préciser le nom windows: ​ USER2=franc
 +PDM=/​media/​Windows1/​Users
 +xdg-user-dirs-update --set DESKTOP ​  ​$PDM/​$USER2/​Desktop
 +xdg-user-dirs-update --set DOCUMENTS $PDM/​$USER2/​Documents
 +xdg-user-dirs-update --set PICTURES ​ $PDM/​$USER2/​Pictures
 +xdg-user-dirs-update --set MUSIC     ​$PDM/​$USER2/​Music
 +xdg-user-dirs-update --set DOWNLOAD ​ $PDM/​$USER2/​Downloads
 +xdg-user-dirs-update --set VIDEOS ​   $PDM/​$USER2/​Videos
 +xdg-user-dirs-update --set TEMPLATES $PDM/​$USER2/​AppData/​Roaming/​Microsoft/​Windows/​Templates
 +xdg-user-dirs-update --set PUBLIC ​   $PDM/Public
 +cp -nv /​etc/​xdg/​user-dirs.conf $HOME/​.config && sed -i '​s/​True/​False/'​ $HOME/​.config/​user-dirs.conf</​code> ​
 +====  Le basculement des fichiers standards ====
 +<code bash>cp -vru $HOME/​Documents/​* ​      ​$PDM/​$USER2/​Documents && rm -rv $HOME/​Documents ​      &&​ ln -s $PDM/​$USER2/​Documents $HOME/​Documents
 +cp -vru $HOME/​Images/​* ​         $PDM/​$USER2/​Pictures ​ && rm -rv $HOME/​Images ​         && ln -s $PDM/​$USER2/​Pictures ​ $HOME/​Images
 +cp -vru $HOME/​Musique/​* ​        ​$PDM/​$USER2/​Music ​    &&​ rm -rv $HOME/​Musique ​        &&​ ln -s $PDM/​$USER2/​Music ​    ​$HOME/​Musique
 +cp -vru $HOME/​Vidéos/​* ​         $PDM/​$USER2/​Videos ​   && rm -rv $HOME/​Vidéos ​         && ln -s $PDM/​$USER2/​Videos ​   $HOME/​Vidéos
 +cp -vru $HOME/​Téléchargements/​* $PDM/​$USER2/​Downloads && rm -rv $HOME/​Téléchargements && ln -s $PDM/​$USER2/​Downloads $HOME/​Téléchargements
 +cp -vru $HOME/​Bureau/​* ​         $PDM/​$USER2/​Desktop ​  &&​ rm -rv $HOME/​Documents ​      & sleep 1 ; ln -s $PDM/​$USER2/​Desktop ​  /​$HOME/​Documents
 +cp -vru $HOME/​Public/​* ​         $PDM/​Public ​          &&​ rm -rv $HOME/​Public ​         & sleep 1 ; ln -s $PDM/​Public ​          ​$HOME/​Public
 +cp -vru $HOME/​Modèles/​* $PDM/​$USER2/​AppData/​Roaming/​Microsoft/​Windows/​Templates && rm -rv $HOME/​Modèles && ln -s $PDM/​$USER2/​AppData/​Roaming/​Microsoft/​Windows/​Templates $HOME/​Modèles
 +ls -Ll $HOME/​Public</​code>​
  • tutoriel/donnees_ubuntu_dans_logiciel_windows.txt
  • Dernière modification: Le 02/08/2025, 19:20
  • par geole