Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

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 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 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 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 terminal et du copier/coller. Il est possible aussi de consulter ce lien.
Une bonne connaissance des 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.

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".

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

C'est quasiment fini.

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

sudo addgroup famille
sudo adduser a famille #  l'utilisateur a  est l'administrateur  ubuntu.
sudo adduser enfant1 famille
sudo adduser enfant2 famille 

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".

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

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.

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'

Solution avec un script

Permet de n'autoriser que quelques répertoires.

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'

On définit les répertoires habituels. On peut ne pas prendre tous les répertoires de cette liste.

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.

Tester le service

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

Rebooter et vérifer l'exécution

journalctl --no-pager -b -g appairage
systemctl status Appairage 

On peut ne pas prendre tous ces répertoires.

La création des redirections standards et leurs figeages.

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

Le basculement des fichiers standards

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
  • tutoriel/donnees_ubuntu_dans_logiciel_windows.txt
  • Dernière modification: Le 02/08/2025, 19:20
  • par geole