Le moyen le plus simple de protéger par mot de passe un répertoire et son contenu sans avoir à créer de nouveaux fichiers?

22

Je voudrais protéger par mot de passe ou crypter un répertoire et tous les fichiers qu'il contient (pour toute l'arborescence de répertoires en dessous). Je ne veux pas déranger tout le répertoire personnel, je veux un répertoire spécifique avec quelques fichiers et dossiers. Je voudrais pouvoir crypter le répertoire ou le décrypter en utilisant un mot de passe. La ligne de commande serait la plus agréable à utiliser. Je ne veux pas avoir à créer un nouveau fichier en tant que version cryptée, puis supprimer les précédents qui sont la version non cryptée.

Vass
la source
Intéressant, "sans avoir à créer de nouveaux fichiers" ...
phunehehe
Vous voulez dire que le montage est un système de fichiers crypté?
Faheem Mitha
@FaheemMitha, je voudrais également éviter la route du système de fichiers, cela semble compliqué.
Vass
1
@Vass La route du système de fichiers est de loin la méthode la plus simple. Vous vous faciliterez la vie si vous ne rejetez pas arbitrairement les solutions.
Gilles 'SO- arrête d'être méchant'
REMARQUE: encfs n'est pas considéré comme sécurisé: askubuntu.com/questions/813290/encfs-insecure-what-to-use-now
Keiran Raine

Réponses:

23

Utilisez encfs (disponible sous forme de package sur la plupart des distributions). Installer:

mkdir ~/.encrypted ~/encrypted
encfs ~/.encrypted ~/encrypted
# enter a passphrase
mv existing-directory ~/encrypted

L'appel initial à encfsconfigure un système de fichiers crypté. Après ce point, chaque fichier sous lequel vous écrivez ~/encryptedn'est pas stocké directement sur le disque, il est crypté et les données cryptées sont stockées sous ~/.encrypted. La encfscommande laisse un démon en cours d'exécution, et ce démon gère le chiffrement (et le déchiffrement lorsque vous lisez un fichier depuis le dessous ~/encrypted).

En d'autres termes, pour les fichiers sous ~/encrypted, les actions telles que les lectures et les écritures ne se traduisent pas directement en lecture ou en écriture à partir du disque. Ils sont effectués par le encfsprocessus, qui chiffre et déchiffre les données et utilise le ~/.encryptedrépertoire pour stocker le texte chiffré.

Lorsque vous avez fini de travailler avec vos fichiers pour le moment, démontez le système de fichiers afin que les données ne soient pas accessibles jusqu'à ce que vous tapiez à nouveau votre phrase secrète:

fusermount -u ~/encrypted

Après ce point, ~/encryptedsera à nouveau un répertoire vide.

Lorsque vous souhaitez ultérieurement retravailler ces fichiers, montez le système de fichiers chiffré:

encfs ~/.encrypted ~/encrypted
# enter your passphrase

Cela, encore une fois, rend les fichiers cryptés ~/.encryptedaccessibles sous le répertoire ~/encrypted.

Vous pouvez modifier le point de montage ~/encryptedcomme vous le souhaitez: encfs ~/.encrypted /somewhere/else(mais montez le répertoire chiffré une seule fois à la fois). Vous pouvez copier ou déplacer le texte chiffré (mais pas pendant qu'il est monté) vers un emplacement différent ou même vers une machine différente; tout ce que vous devez faire pour travailler sur les fichiers est de passer l'emplacement du texte chiffré comme premier argument encfset l'emplacement d'un répertoire vide comme deuxième argument.

Gilles 'SO- arrête d'être méchant'
la source
la réponse est très utile et pratique. J'apprécierais beaucoup si vous pouviez ajouter un peu plus de texte pour expliquer ce que fait chaque opération si cela ne vous dérange pas. Et pourriez-vous expliquer ce que l'on entend par système de fichiers dans ce contexte, et la pertinence du montage?
Vass
1
@Vass J'ai mis à jour ma réponse avec plus d'explications. Pour des informations sur les systèmes de fichiers et le montage, voir Quels points de montage existent sur un système Linux typique? et Qu'entend-on par monter un périphérique sous Linux?
Gilles 'SO- arrête d'être méchant'
Voilà une explication incroyable. J'ai l'impression d'avoir beaucoup appris. Et les liens supplémentaires aident. Ainsi, le système de fichiers créé par encfs est «des blocs mélangés du fichier d'origine» et à travers encfs, vous pouvez le parcourir et le lire; car le système de fichiers d'origine n'est pas compatible pour utiliser ces blocs de données. et le répertoire chiffré est caché pour ne pas y entrer par accident. et si vous le faisiez, vous ne verriez rien?
Vass
1
@Vass "le système de fichiers créé par encfs est 'des blocs mélangés du fichier d'origine' et à travers encfs vous pouvez naviguer et le lire": oui, exactement. Le répertoire ~/.encryptedcontient le texte chiffré; vous pouvez y accéder sans passer par encfs, mais vous n'y verrez que des données chiffrées.
Gilles 'SO- arrête d'être méchant'
2

Je ne veux pas avoir à créer un nouveau fichier en tant que version cryptée, puis supprimer les précédents qui sont la version non cryptée

Mais c'est exactement le scénario que vous avez décrit ... "être capable de crypter le répertoire ou de le décrypter"

Je soupçonne que la solution que vous recherchez est un FUSE chiffré ou similaire . Le système de fichiers est stocké dans un fichier crypté et lorsqu'il est monté (avec une phrase secrète), il y a un accès transparent via la couche VFS.

symcbean
la source
la création d'un nouveau fichier et la suppression du précédent est une route .zip avec protection par mot de passe. Je ne comprends pas le système de fichiers et l'itinéraire de montage auxquels vous faites référence. N'y a-t-il pas un programme qui embrouille le fichier d'une manière ou d'une autre et qui peut le remettre en ordre?
Vass
oui, voici toute une liste de systèmes de fichiers cryptés FUSE. Le chemin zip est le plus simple
bsd
@Vass Je ne comprends pas ce que vous entendez par «le chemin du zip»: il n'y a pas de zip impliqué. Le texte en clair n'est jamais stocké sur le disque (ce serait beaucoup plus compliqué et irait à l'encontre de la plupart des objectifs du chiffrement).
Gilles 'SO- arrête d'être méchant'
2
Le chemin zip / chemin zip est de compresser récursivement un répertoire avec les options de cryptage / mot de passe. Ensuite, cependant, lorsque l'on veut accéder à un fichier, il faut extraire le fichier non crypté du zip, lire le fichier, puis supprimer ou modifier le fichier, puis mettre à jour le zip avec un nouveau fichier, puis supprimer le fichier intermédiaire. Il cherche la transparence d'un système de fichiers crypté mais au niveau du répertoire. Moi et d'autres suggérons FUSE avec un fs chiffré. "Simple" est une question de perspective et d'expérience.
bsd
@bdowning, oui, vous l'avez articulé correctement. Je ne comprends pas les systèmes de fichiers et leur fonctionnement. Je travaillerais aveuglément avec les commandes sans comprendre les concepts.
Vass