Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:donnees_stockees_dans_un_systeme_de_fichiers_zfs [Le 06/07/2024, 13:40] geole [Incident inhérent la conception de zfs] |
tutoriel:donnees_stockees_dans_un_systeme_de_fichiers_zfs [Le 22/07/2024, 15:21] (Version actuelle) geole [Utilisation sous windows] |
||
---|---|---|---|
Ligne 30: | Ligne 30: | ||
A l'issue de cette commande réussie, le point de montage **/media/ZFS** est automatiquement créé et accessible en écriture. | A l'issue de cette commande réussie, le point de montage **/media/ZFS** est automatiquement créé et accessible en écriture. | ||
===== Réutilisation de cet espace disque lors d'un nouveau démarrage ===== | ===== Réutilisation de cet espace disque lors d'un nouveau démarrage ===== | ||
- | Le logiciel ZFS étant actuellement en phase expérimentale, il n'est pas facile de savoir si l'**oubli** de rendre disponible auprès de l'utilisateur ces données **__chiffrées__**, est définitif ou sera réparé. \\ Voici deux palliatifs. | + | Le logiciel ZFS étant actuellement en phase expérimentale, il n'est pas facile de savoir si l'**oubli** de rendre disponible auprès de l'utilisateur ces données **__chiffrées__**, est définitif ou sera réparé. \\ Voici trois palliatifs. |
==== Solution manuelle ==== | ==== Solution manuelle ==== | ||
Lorsque l'utilisateur se connecte, il doit penser à monter la structure zfs s'il souhaite l'utiliser. La seule solution est la ligne de commande. C'est simplement: | Lorsque l'utilisateur se connecte, il doit penser à monter la structure zfs s'il souhaite l'utiliser. La seule solution est la ligne de commande. C'est simplement: | ||
<code bash>sudo zfs mount -vl MesDonneesPersonnelles</code> | <code bash>sudo zfs mount -vl MesDonneesPersonnelles</code> | ||
Le mot de déchiffrement sera demandé à l'écran de l'utilisateur. | Le mot de déchiffrement sera demandé à l'écran de l'utilisateur. | ||
- | ==== Solution automatique ==== | + | ==== Solution standard==== |
+ | Un service **utilisateur** demande la valeur de la clé de chiffrement au moment de la connexion de l'utilisateur. | ||
+ | === Le script de montage === | ||
+ | <code bash>cat<<'EOF'>$HOME/ZFS.sh | ||
+ | #!/bin/bash | ||
+ | Data=MesDonneesPersonnelles | ||
+ | Statut=$(zpool list $Data |tail -1 ) | ||
+ | if [[ ! $Statut =~ "$Data" ]] ; then | ||
+ | echo Importation des données par le service USER de ZFS | ||
+ | sudo zpool export $Data ### Pour se prémunir des noms de partitions des disques externes susceptible de changer de valeur si besoin | ||
+ | sudo zpool import -f $Data | ||
+ | fi | ||
+ | sudo zfs set mountpoint=/media/$Data $Data | ||
+ | for (( i=1; i < 9; i++ )); do | ||
+ | echo itération-$i dans le service USER de ZFS | ||
+ | Statut=$(zfs get mounted $Data |tail -1 ) | ||
+ | if [[ $Statut =~ "no" ]] ; then | ||
+ | ret=`DISPLAY=:1 zenity --entry --title="Montage de la partition $Data ($i/8)." --text "veuillez fournir la phrase de déchiffrement de $Data." ` | ||
+ | sleep 2 | ||
+ | sudo zfs mount -l $Data <<<$ret | ||
+ | else i=10 | ||
+ | fi | ||
+ | done | ||
+ | if [[ ! $Statut =~ "yes" ]] ; then | ||
+ | DISPLAY=:1 zenity --error --text "La partition $Data n'est pas disponible; veuillez investiguer!" | ||
+ | fi | ||
+ | EOF | ||
+ | sleep 1 | ||
+ | chmod +x /$HOME/ZFS.sh | ||
+ | cat $HOME/ZFS.sh | ||
+ | $HOME/ZFS.sh</code> | ||
+ | === Le script d'automatisation === | ||
+ | <code bash>mkdir -pv $HOME/.config/systemd/user | ||
+ | cat <<'EOF'>$HOME/.config/systemd/user/ZFS.service | ||
+ | [Unit] | ||
+ | Description=Montage de la partition de données personnelles. | ||
+ | DefaultDependencies=no | ||
+ | [Service] | ||
+ | Type=simple | ||
+ | ExecStartPre=echo Montage de la partition de données personnelles ZFS. | ||
+ | ExecStart=/home/%u/ZFS.sh | ||
+ | ExecStopPost=echo Le ontage de la partition de données personnelles ZFS est terminé. | ||
+ | StandardOutput=journal+console | ||
+ | [Install] | ||
+ | WantedBy=default.target | ||
+ | EOF | ||
+ | sleep 1 | ||
+ | systemctl --user stop ZFS.service ; systemctl --user disable ZFS.service ; systemctl --user daemon-reload; | ||
+ | systemctl --user enable ZFS.service ; systemctl --user start ZFS.service | ||
+ | systemctl --user --no-pager -l status ZFS.service</code> | ||
+ | ==== Solution automatique alternative==== | ||
**La valeur de la clé de déchiffrement doit être dans un fichier**. Il existe trois solutions: | **La valeur de la clé de déchiffrement doit être dans un fichier**. Il existe trois solutions: | ||
- Le logiciel est déjà chiffré. Dans ce cas la valeur de la clé de chiffrement peut être dans un fichier stocké sous** /root**. Solution aisément installable. | - Le logiciel est déjà chiffré. Dans ce cas la valeur de la clé de chiffrement peut être dans un fichier stocké sous** /root**. Solution aisément installable. | ||
- Le logiciel n'est pas chiffré, La clé de chiffrement peut être dans une clé usb que l'utilisateur branche au moment de se connecter et enlève aussitôt la connexion réalisée. C'est la solution privilégiée par les concepteurs. Solution aisément installable avec un risque de perdre la clé ou qu'elle soit lue par une personne non-habilitée. | - Le logiciel n'est pas chiffré, La clé de chiffrement peut être dans une clé usb que l'utilisateur branche au moment de se connecter et enlève aussitôt la connexion réalisée. C'est la solution privilégiée par les concepteurs. Solution aisément installable avec un risque de perdre la clé ou qu'elle soit lue par une personne non-habilitée. | ||
- | - Un service demande à l'utilisateur la valeur de la clé de chiffrement, la stocke dans un fichier, ouvre la structure chiffrée et détruit le contenu du fichier. Cela ne laisse que quelques instants cette valeur disponible à la vue de tout le monde.... C'est un développement personnel susceptible d'être amélioré par qui connait mieux. \\ Il est basé sur les services de [[:/systemd|systemd]] qui semblent destinés à se passer d'utilisateur. Le dialogue à l'écran étant inconnu. | + | - Un service **système** demande à l'utilisateur la valeur de la clé de chiffrement, la stocke dans un fichier, ouvre la structure chiffrée et détruit le contenu du fichier. Cela ne laisse que quelques instants cette valeur disponible à la vue de tout le monde.... C'est un développement personnel susceptible d'être amélioré par qui connaît mieux. \\ Il est basé sur les services de [[:/systemd|systemd]] qui semblent destinés à se passer d'utilisateur. Le dialogue à l'écran étant inconnu. |
Pensez à devenir administrateur en frappant **sudo -i**. | Pensez à devenir administrateur en frappant **sudo -i**. | ||
Ligne 344: | Ligne 394: | ||
En résumé: La clé de chiffrement doit être saisie au clavier, il faut exporter sous ubuntu et importer sous windows qui pourra modifier les fichiers créés par ubuntu, puis exporter sous windows et importer sous ubuntu qui pourra modifier les fichiers créés par windows. | En résumé: La clé de chiffrement doit être saisie au clavier, il faut exporter sous ubuntu et importer sous windows qui pourra modifier les fichiers créés par ubuntu, puis exporter sous windows et importer sous ubuntu qui pourra modifier les fichiers créés par windows. | ||
+ | ===== Annexes ===== | ||
+ | * [[https://www.recuperation-donnees-raid.com/raid-z|Présentation rapide du RAIDZ]] | ||
+ | * [[https://www.raidz-calculator.com/raidz-types-reference.aspx|Detailled presentation of RAIDZ]] | ||