Cette page est en cours de rédaction.
Apportez votre aide…

Ce document est fait à partir des versions windows 18.03 et ubuntu 18.04

L'idée de faire ce document est arrivée suite à des problèmes de conseils sur le forum sur l'utilisation d'une partition commune entre ubuntu et windows. Tout le monde y allait de son point de vue. Finalement la personne qui demande conseil se trouve un peu perdue et ne sait plus quoi faire. Il y a déjà pas mal de documentations plus ou moins à jour ce sujet. L'idée de faire un nouveau document actualisé 2018 et maintenu par la communauté permet à tout intervenant de le citer comme méthode à suivre pour une bonne installation.

Un ordinateur acheté est très rarement livré sans O.S. opérationnel. Il y a au moins un O.S. gratuit. Il y a quelques décennies, l'installateur de windows demandait d'abord l'espace disque que l'utilisateur voulait allouer pour ses propres données. Actuellement microsoft considère que les données de l'utilisateur doivent être stockées chez microsoft et son logiciel dans tout le disque de l'utilisateur. Ubuntu semble aller dans la même direction. Il est bon de rappeler qu'en standard, le premier disque dur qui est maintenant souvent un SSD, est composé:

D'une partition EFI d'environ 511 Mo.

D'un OS composé de:

Une partition occupant le reste du disque pour ubuntu.

Une partition MSR d'environ 16 Mo et d'une autre occupant le reste du disque pour windows.

Les données personnelles de l'administrateur de l'OS se trouvent intégrées dans le logiciel fourni.

Cela est une bonne pratique. Cet administrateur n'a absolument pas besoin d'avoir de données personnelles!!!!

Son rôle essentiel est d'installer les O.S. Le second O.S. pouvant être windows. De gérer les O.S., l'ordinateur ainsi que es permissions des utilisateurs s'il n'est pas le seul utilisateur de ce matériel informatique.

A lui de ne pas s'oublier dans l'installation de ces données vitales.

Afin que cet espace soit compatible windows/ubuntu, un certain nombre de contraintes sont répertoriées:

  • Pas d'utilisation de la gestion dynamique
  • Pas d'utilisation de clé de chiffrement propriétaire. Possibilité d'un package commun
  • Pas de fonctionnalité RAID logiciel
  • La création de raccourcis n'est pas toujours possible.

Rétrécissement drastique de la partition contenant le logiciel pour création de la première partition de données. Le logiciel communément utilisé pour libérer de l'espace est Gparted. Il ne doit pas être utilisé pour gérer l'espace disque d'un windows10 qui est en sommeil.

La partition windows C: recevra une étiquette/Label intitulé "Windows1".

Achat d'un disque pour toute nouvelle partition de données ou première partition en cas de premier disque de taille très petite.

L'espace disque récupéré étant destiné à recevoir les données des utilisateurs. il sera formaté en NTFS en mettant une étiquette/Label intitulé "CommunN" avec N commençant à 1. Sa taille sera le maxima possible.

Créer une partition NTFS destinée à recevoir les données des utilisateurs. Sa taille sera le maxima possible. Y mettre le label/l'étiquette "CommunN". "N" étant un N° commençant à 1.

Il existe deux catégories de personnes: Celles qui utilisent l'ordinateur et celles qui l'administrent. Une personne peut avoir les deux fonctions. Il est communément admis que les utilisateurs normaux acceptent difficilement que leurs données soient modifiées par d'autres, voir lues.

Ce document va montrer comment quelques personnes désirant découvrir le fonctionnement de windows10 et de ubuntu 18.04 peuvent partager à tour de rôle un même ordinateur en s'exposant le moins possible au risque de partages de données. Chaque utilisateur a donc sa définition sous UBUNTU et sous WINDOWS ainsi que les mots de passes associés. Il est possible de choisir le même nom d'utilisateur et le même mot de passe pour utiliser ubuntu et windows avec quelques règles simples. Ce n'est pas une obligation.

Création des utilisateurs Windows

Créer au moins un utilisateur en lui mettant un mot de passe à ne pas oublier. Le guide windows convient très bien pour cette réalisation. Si vous souhaitez mettre le même nom sous ubuntu, il est préférable que le nom soit sans caractères majuscules. Ne soyez pas surpris si cette action ne vous permet pas de renseigner la lettre de la partition sensément réceptrice. Cette action est ultra-rapide. Elle pourra être rejouée pour un autre utilisateur oublié.

Se connecter avec ce nom d'utilisateur. Cette action de connexion va fabriquer automatiquement dans C: divers répertoires à partir d'un profil et mettre à jour la base de registre. Cette action ne dure que quelques minutes. La suite va être plus compliquée et consiste à déplacer les répertoires de cet utilisateurs dans le répertoire personnel de cet utilisateur tel que vu au-dessus avant qu'il y ait trop de données..

Transférer les répertoires de l'utilisateur de la partition C: dans la partition prévue à cet effet. La liste de dossiers potentiellement déplaçables est :

  • Bureau. Semble trop spécifique. Hormis un problème d'espace disque, le déplacement semble inutile.
  • Contacts.
  • Documents.
  • Favoris. Semble trop spécifique. Hormis un problème d'espace disque, le déplacement semble inutile.
  • Images.
  • Liens. Semble trop spécifique. Hormis un problème d'espace disque, le déplacement semble inutile.
  • Musique.
  • 'Objets 3D'.
  • 'One Drive'. Le déplacement est impossible.
  • 'Parties Enregistrées'.
  • Recherches.
  • Téléchargements.
  • Vidéos

Le transfert sera fait en mode graphique répertoire par répertoire. Suivre l'exemple de ce document https://informatique-beaujolaise.blogspot.com/2013/02/deplacer-mes-documents-sur-une-autre.html Il peut se révéler pratique de faire préventivement la création des répertoires avant de jongler avec la souris afin d'éviter le risque décrit au point 4 du lien. Si cet incident arrive, le plus simple est de supprimer l'utilisateur et de le recréer.

Le transfert de ces répertoires par script n'est pas encore une opération bien connue avec windows10. Le nombre de personnes à déplacer suivant ce procéder étant relativement faible, il est possible que la mise au point du script soit retardée.

Terminer le déplacement en créant le fichier TEST.txt dans le répertoire "NomUtilisateur"/Documents. Afin de vérifier ultérieurement le fonctionnement.

Continuer en créant les autres utilisateurs prévus.

Création des utilisateurs Ubuntu

Fabriquer les points de montage /media/CommunN et /media/Windows

sudo mkdir /media/Windows1 && sudo mkdir /media/Commun1

Mettre à jour le fichier /etc/fstab en ajoutant le paramétrage de montage des partitions

echo "LABEL=Commun1   /media/Commun1 ntfs-3g windows-names 0 0" |sudo tee -a /etc/fstab
echo "LABEL=Windows1  /media/Windows1  ntfs-3g ro  0 0" | sudo tee -a /etc/fstab 

Remarque1: Cette codification avec ntfs-3g n'assure pas encore la sécurité parfaite entre les utilisateurs.

Remarque2: Il est aussi possible de ne pas monter la partition Windows ou de la monter en écriture en accès NTFS (sans protection).

Effectuer le montage des partitions.

sudo mount -L Windows1 && sudo mount -L Commun1 

Créer un groupe spécifique à ces utilisateurs.

sudo addgroup ntfs3g 

Créer un utilisateur. La commande de création d'utilisateur normal est

sudo adduser   --ingroup ntfs3g "Nom Utilisateur"

Sinon elle est

sudo adduser   --ingroup ntfs3g --force-badname "NomUtilisateur" 

Créer un répertoire de premier niveau dédié à l'utilisateur si ce répertoire n'existe pas encore.

mkdir /media/Commun1/"Nom Utilisateur" 
sudo chown   "Nom Utilisateur":ntfs3g /media/commun1/"Nom Utilisateur" 

Se connecter en étant utilisateur pour fabriquer la structure fichier propre à ubuntu. Elle s'installera aussi dans le logiciel de Ubuntu. Elle est à migrer dans le bon répertoire à l'aide des commandes suivantes:

##Prérequis à l'exécution des commandes
##     Avoir monté la partition commune sur le point de montage /media/Commun##
##     Fermer les applications spécialement bittorent.

UTILISATEUR=$USER     #### Nom du répertoire de l’utilisateur de /media/Commun1  au cas où il ne serait pas identique à $USER

## Normalement les sous-répertoires ont été créés  sous windows lors de l'opération "déplacement des répertoires". Cependant le script considère que cette action pourrait ne pas  être encore faite.
    

for i  in  Téléchargements Modèles Public  Documents  Musique  Images  Vidéos
do
    mkdir -p /media/Commun1/$UTILISATEUR/$i
    mv -nv $HOME/$i/* /media/Commun1/$UTILISATEUR/$i
    rm -Rv $HOME/$i
    ln -s /media/Commun1/$UTILISATEUR/$i $HOME/$i
done
## On va se permettre de créer les autres répertoires window au cas où les données windows seraient déplacées après la  vérification du bon fonctionnement de la sécurité
mkdir -p /media/Commun2/$UTILISATEUR/Contacts
mkdir -p /media/Commun2/$UTILISATEUR/'Objets 3D'
mkdir -p /media/Commun2/$UTILISATEUR/'Parties Enregistrées'
mkdir -p /media/Commun2/$UTILISATEUR/Recherches

## Création du répertoire de l'utilisateur accessible en lecture pour les autres utilisateurs.
mkdir /media/Commun1/Partage/$UTILISATEUR
## liste  pour vérifier les liens
ls -ls $HOME | grep lrw 

Revenir en mode administrateur pour créer autant d'utilisateurs que nécessaire.

Chaque répertoire "UtilisateurN". est dédié à un seul utilisateur. Seul l'administrateur l'aura en accès général. Les autres utilisateurs ne pourront y accéder y compris en lecture. Pour réaliser cette action il est nécessaire d'avoir quelques connaissances dans la sécurité que windows propose. Pour l'instant, les trois captures d'écran disponibles indiquent le résultat final à obtenir. Cependant il existe pas mal de documentations sur le net qui expliquent comment obtenir ce résultat. Rien ne s'oppose à ce que cette partie soient plus développée car cela n'est pas le fonctionnement classique de la sécurité qui n'interdit pas la lecture des données par les autres.

Exemple de grille windows permettant de définir les autorisations pour un répertoire personnel de premier niveau

Exemple de grille windows montrant les autorisations utilisateur pour un répertoire personnel de premier niveau

Exemple de grille windows permettant de définir les autorisations système pour un répertoire personnel de premier niveau

Exemple de grille windows récapitulant les autorisations pour un répertoire personnel de premier niveau

Les répertoires de premier niveau peuvent aussi être créés sous ubuntu de cette façon

  • Monter classiquement la partition NTFS
  • Créer classiquement le répertoire de premier niveau sans être administrateur pour être le propriétaire du répertoire
  • Allouer le répertoire au bon utilisateur et au groupe ntfs3g avec la commande sudo chmod
  • Laisser l'utilisateur gérer les autorisations qu'il désire accorder avec l"application "Fichiers"
  • Il faudra qu'il fasse alors un clic droit sur le nom du répertoire
  • Puis un clic gauche sur l'action propriété
  • enfin ouvrir l'onglet propriété pour ne rien accorder aux autres utilisateurs.

Exemple de grille ubuntu.

Créer le répertoire "PartageN".

Dans ce répertoire, créer le sous-répertoire:

"Commun". Il sera mis en modification générale afin que tous ceux qui le souhaitent puissent y déposer des données modifiables et supprimables par tout le monde. Ultérieurement, chaque utilisateur pourra y créer son propre répertoire: "NomUtilisateur". Pour des raisons pratiques, chaque utilisateur fera cette action de création en étant connecté obligatoirement sous UBUNTU. Le nom retenu est à la charge de chaque utilisateur. Tous les autres utilisateurs pourront visualiser le contenu de ce répertoire mais seront incapable de le modifier. Ce répertoire n'est pas obligatoire.

Toutes ces actions sont à faire autant de fois qu'il y a d'utilisateurs prévus en plusieurs fois si nécessaire.

Lorsqu'il n'existe qu'un seul utilisateur utilisant l'ordinateur, ce chapitre est inutile. Il est donc à traiter lorsqu'un second ( ou plus) utilisateur est présent. Ce chapitre n'a pas la prétention de révolutionner les principes de sécurité. Ce qui est décrit fonctionne avec Windows10 version 17.03 et Ubuntu version 18.04 en juin 2018 qui contient une version du logiciel NTFS-3G améliorée par rapport à la version LTS précédente. Rien ne garantit que les anciens O.S. fonctionnent de cette façon. Rien ne garantit que les futurs O.S. fonctionneront de cette façon. Rien ne garantit que cette partie de documentation sera réactualisée tous les semestres. Rien ne garantit qu'elle fonctionnera immédiatement dès l'installation. Rien ne garantit que le fonctionnement est immuable car il est assez facile de modifier des options de sécurité et obtenir un résultat autre que celui espéré. Rien ne garantit que les réponses à vos questions dans le forum auront une réponse.

Cette mise en place est certainement une partie compliquée qui peut rebuter. Elle n'est cependant pas nécessaire s'il y a aucun problème d'égo au sein des personnes qui partagent l'ordinateur. Cette mise en place est plus complexe que la mise en place standard par défaut qui est basée sur principe: "Tout le monde peut lire ce que j'écris" parce que basée sur l'existence d'une interdiction de lecture d'une partie des données qui nécessite la création d'un fichier guide. .

Ce document étant un tuto, il expose une façon de faire qui a fonctionné, Ce n'est certainement pas la seule possible. Voici donc une façon de procéder.

Récupération des références windows

La nouvelle version de l'application NTFS-3G ne dispose plus du module windows. Le traitement se fera donc sous ubuntu. La solution retenue est la ligne de commande et pas le logiciel qui est trop compliqué et qui donne une fausse sécurité.

Il est nécessaire de récupérer les références windows de chaque utilisateur windows pour l'associer à l'utilisateur ubuntu. A priori, utiliser le même nom n'est pas une option qui évite cette action d'association. Pour améliorer, nous avons créé un fichier dans l'étape d'installation. L'administrateur Ubuntu va récupérer la signature windows de ce fichier avec la commande suivante:

ntfssecaudit   -u  /media/Commun1/NomUtilisateur/Documents/TEST.txt | grep -v "#"  

Le retour sera de sept lignes. Par exemple

No errors were found
ntfssecaudit 1.5.0 : NTFS security data auditing
user::S-1-5-21-927183623-3019374658-1503319323-1020
:group:S-1-5-21-927183623-3019374658-1503319323-513
::S-1-5-21-927183623-3019374658-1503319323-10000
No errors were found

Il faut alors commencer à fabriquer manuellement le fichier $home/UserMapping avec les lignes utiles. Par exemple:

# Début création manuelle du fichier faite aujourd'hui
:ntfs3g:S-1-5-21-927183623-3019374658-1503319323-513
NomUbuntu de cet utilisateur1 Windows::S-1-5-21-927183623-3019374658-1503319323-1020 

Il faut continuer avec le second utilisateur puis encore ajouter une ligne, etc….. Puis, lorsque c'est le dernier, on termine l'ajout dans le fichier qui devient

# Début création manuelle du fichier faite aujourd'hui
:ntfs3g:S-1-5-21-927183623-3019374658-1503319323-513
NomUbuntu de cet utilisateur1 Windows:ntfs3g:S-1-5-21-927183623-3019374658-1503319323-1020
NomUbuntu de cet utilisateur2 Windows:ntfs3g:S-1-5-21-927183623-3019374658-1503319323-1021
NomUbuntu de cet utilisateur3 Windows:ntfs3g:S-1-5-21-927183623-3019374658-1503319323-1025
......
NomUbuntu de cet utilisateur9 Windows:ntfs3g:S-1-5-21-927183623-3019374658-1503319323-1041
::S-1-5-21-927183623-3019374658-1503319323-10000
# fin de création manuelle du fichier  

Activation de la sécurité

Le principe est simple. Le fichier ainsi créé va servir de guide. On peut indiquer dans la ligne de montage de la partition l'endroit où il doit être trouvé. On peut aussi le mettre à l'endroit par défaut qui est sous le répertoire .NTFS-3G de la partition. Ce qui semble le plus simple. Il faut démonter la partition et la remonter pour prise en compte. Dans l'absolu, cette opération n'est à faire qu'une fois. La pratique montre qu'il y aura certainement plusieurs tentatives avant que tout soit correct. Ce script peut aider.

#! /bin/sh
## Mettre à jour la partition
COM=Commun1              #### Nom de la partition Commune Traitée
sudo cat  UserMapping 
sudo mount -L $COM
sudo mkdir /media/$COM/.NTFS-3G
sudo cp -v UserMapping  /media/$COM/.NTFS-3G
sleep 5
sudo umount -v /media/$COM
sudo mount -L $COM
## Fin de script. 

Vérification du fonctionnement de la sécurité

Cette opération est nécessaire car personne n'est à l'abri d'avoir mal installé et surtout d'avoir mal écrit ce tutoriel en faisant faire des réalisations non désirées.

Un rapide coup d'oeil sur les dossiers personnels.

ls -als /media/Commun1 

Un rapide coup d'oeil sur les dossiers partagés.

ls -als /media/Commun1/Partage 

Accès aux dossiers généraux communs.

echo ecriture  >/media/Commun1/Partage/TEST.txt
echo ecriture  >/media/Commun1/Partage/Commun/TEST.txt 

Accès aux dossiers spécifiques communs: Ils doivent être tous accessibles en lecture et seul, celui de l'utilisateur, doit être accessible en écriture.

ls /media/Commun1/Partage/Utulisateur1
ls /media/Commun1/Partage/Utulisateur2
ls /media/Commun1/Partage/Utulisateur3
echo ecriture  >/media/Commun1/Partage/Utilisateur1/TEST.txt
echo ecriture  >/media/Commun1/Partage/Utilisateur2/TEST.txt
echo ecriture  >/media/Commun1/Partage/Utilisateur3/TEST.txt 

Accès aux répertoires personnels: seul, celui de l'utilisateur, doit être accessible.

ls /media/Commun1/Utulisateur1
ls /media/Commun1/Utulisateur2
ls /media/Commun1/Utulisateur3
echo ecriture  >/media/Commun1/Utilisateur1/TEST.txt
echo ecriture  >/media/Commun1/Utilisateur2/TEST.txt
echo ecriture  >/media/Commun1/Utilisateur3/TEST.txt 

Réparation du fonctionnent de la sécurité. Surtout, Si cela ne fonctionne pas comme voulu, il est inutile de faire un BOOT-REPAIR. Il n'y a pas beaucoup d'intervenants. L'écriture de ce tuto prouve simplement que cela peut fonctionner. Si tel n'est pas le cas, il faut controler. La cause est obligatoirement l'association et les permissions accordées à l'installation.

Il faut regarder de nouveau les permissions de base de WINDOWS.

Il faut regarder de nouveau le contenu du fichier UserMapping.

Il faut aussi regarder la création des utilisateurs:

cat /etc/group  | grep nfts3g
cat /etc/passwd | grep utilisateurs
id 

Lorsque cela est possible, sous ubuntu avec le gestionnaire de fichier, sélectionner le dossier, faire un clic droit, choisir propriétés et aller regarder l'onglet permissions Si l'ouverture est possible, il y a une très belle présentation des habilitations avec une possible modification des actions autorisées. ( Capture écran sera fournie).

Connexion avec un mauvais groupe.

La liste des répertoires et fichiers n'est pas possible. Le message est assez déconcertant.

b3@u1804:~$ cd /media
b3@u1804:/media$ cd C*1
bash: cd: Commun1: Noeud final de transport n'est pas connecté
b3@u1804:/media$ ls -als
ls: impossible d'accéder à 'Commun1': Noeud final de transport n'est pas connecté
ls: impossible d'accéder à 'Windows1': Noeud final de transport n'est pas connecté
total 16
4 drwxr-xr-x   6 root root 4096 juin  26 09:47 .
4 drwxr-xr-x  28 root root 4096 juin  12 11:22 ..
4 drwxrwxrwx   1 root root 4096 juin  26 11:09 BADNTFS
? d??????????  ? ?    ?       ?              ? Commun1
4 drwxr-x---+  2 root root 4096 mai   28 13:23 u1804
? d??????????  ? ?    ?       ?              ? Windows1
b3@u1804:/media$ 

La Documentation NTFS-3G

Principe de l'association des utilisateurs.

Une brève description:

Définition d'un utilisateur Ubuntu =⇒ /etc/passwd ⇒ GID à partir de 1000 par pas d'incrémentation de 1.

Définition d'un utilisateur Windows ⇒ Base de registres ⇒ SID composé de clé machine + N° à partir de 1000 par pas d'incrémentation de 1.

Le SID Windows

Définition https://support.microsoft.com/fr-fr/help/243330/well-known-security-identifiers-in-windows-operating-systems

Récupération https://www.windows-commandline.com/wmic-useraccounts/

La commande suivante est bien suffisante. wmic useraccount get name , sid

Script de fabrication du fichier Usermapping

Ce script peut aussi être utilisé pour rechercher ce qui ne sera pas protégé si l'O.S. Windows est utilisé en écriture.

#! /bin/sh 
##Prérequis à l'exécution du script.
### Script de création des habilitations:  Il est nécessaire de définir les deux partitions Windows et Commun qui vont être traitées si les noms retenus ne sont pas Windows1 et Commun1.

WIN=Windows1                #### Nom de la partition Windows   Traitée
COM=Commun1                 #### Nom de la partition Commune   Traitée

## Epuration des partitions au cas où il y aurait des restes de passages précédents.
sudo mount -v /media/$WIN
sudo mount -v /media/$COM
sudo rm -R /media/$WIN/.NTFS*
sudo rm -R /media/$COM/.NTFS*
sudo rm -R /media/$WIN/.Trash*
sudo rm -R /media/$COM/.Trash*
## Création du fichier de protection
sleep 5
umount -v /media/$WIN
umount -v /media/$COM
##ntfsusermap   $(blkid |grep -Ei "$WIN" | awk -F ':' '{print $1}')    $(blkid |grep -Ei $COM | awk -F ':' '{print $1}') ### Nom des partitions windows et Commun Traitées
ntfsusermap  /dev/disk/by-label/$WIN   /dev/disk/by-label/$COM  

Options de montage

Les options possibles pour le montage d'une partition NTFS sont disponibles dans ce document http://jp-andre.pagesperso-orange.fr/permissions.html#options

Script de montage des partitions

#! /bin/sh 
## Prérequis à l'exécution du script.
## Il est nécessaire de définir les deux partitions Windows et Commun qui vont être traitées si les noms retenus ne sont pas Windows1 et Commun1.

WIN=Windows1                #### Nom de la partition Windows   Traitée
COM=Commun1                 #### Nom de la partition Commune   Traitée

sudo cat  UserMapping 
sudo mount -L $COM
sudo mount -L $WIN
sudo mkdir /media/$COM/.NTFS-3G
sudo mkdir /media/$WIN/.NTFS-3G
sudo cp -v UserMapping  /media/$COM/.NTFS-3G
sudo cp -v UserMapping  /media/$WIN/.NTFS-3G
sleep 5
sudo umount -v /media/$WIN
sudo umount -v /media/$COM
sudo mount -L $WIN
sudo mount -L $COM
## Fin de script. 

La création d'un compte utilisateur Windows

D'autres liens sur le sujet.

  • partition_ntfs.txt
  • Dernière modification: Le 19/09/2018, 13:07
  • par ??