Самый простой способ защитить паролем каталог и его содержимое без необходимости создавать новые файлы?

22

Я хотел бы защитить паролем или зашифровать каталог и все файлы в нем (для всего дерева каталогов под ним). Я не хочу беспокоить весь домашний каталог, я хочу определенный каталог с некоторыми файлами и папками в нем. Я хотел бы иметь возможность зашифровать каталог или расшифровать его с помощью пароля. Командная строка будет лучше всего использовать. Я не хочу создавать новый файл как зашифрованную версию, а затем удалять предыдущие, которые не являются зашифрованной версией.

Васса
источник
Интересно, «без необходимости создавать новые файлы» ...
phunehehe
Вы имеете в виду mount как зашифрованную файловую систему?
Фахим Митха
@FaheemMitha, я также хотел бы избежать маршрута файловой системы, это звучит сложно.
Васс
1
@Vass Маршрут файловой системы - самый простой метод на сегодняшний день. Вы сделаете свою жизнь проще, если не будете произвольно отвергать решения.
Жиль "ТАК - перестать быть злым"
ПРИМЕЧАНИЕ: encfs не считается безопасным: askubuntu.com/questions/813290/encfs-insecure-what-to-use-now
Кейран Рейн

Ответы:

23

Используйте encfs (доступно как пакет в большинстве дистрибутивов). Установить:

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

Первоначальный вызов для encfsнастройки зашифрованной файловой системы. После этого каждый файл, под которым вы пишете, ~/encryptedне сохраняется непосредственно на диске, он зашифровывается и зашифрованные данные хранятся в ~/.encrypted. Команда encfsоставляет работающий демон, и этот демон обрабатывает шифрование (и дешифрование при чтении файла из-под ~/encrypted).

Другими словами, для файлов, находящихся под ~/encrypted, такие действия, как чтение и запись, не переводятся непосредственно в чтение или запись с диска. Они выполняются encfsпроцессом, который шифрует и дешифрует данные и использует ~/.encryptedкаталог для хранения зашифрованного текста.

Когда вы закончите работать с вашими файлами на данный момент, размонтируйте файловую систему, чтобы к данным не было доступа, пока вы снова не введете ключевую фразу:

fusermount -u ~/encrypted

После этого ~/encryptedснова будет пустой каталог.

Когда позже вы захотите снова поработать с этими файлами, подключите зашифрованную файловую систему:

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

Это, опять же, делает зашифрованные файлы ~/.encryptedдоступными в каталоге ~/encrypted.

Вы можете изменить точку монтирования так, ~/encryptedкак вам нравится: encfs ~/.encrypted /somewhere/else(но монтировать зашифрованный каталог только один раз за раз). Вы можете скопировать или переместить зашифрованный текст (но не во время его монтирования) в другое место или даже на другую машину; все, что вам нужно сделать для работы с файлами, это передать местоположение зашифрованного текста в качестве первого аргумента encfsи местоположение пустой директории в качестве второго аргумента.

Жиль "ТАК - перестань быть злым"
источник
Ответ очень полезен и практичен. Я был бы очень признателен, если бы вы могли добавить еще текст, чтобы объяснить, что делает каждая операция, если это вас не беспокоит. И не могли бы вы объяснить, что подразумевается под файловой системой в этом контексте и актуальность монтирования?
Васс
1
@Vass Я обновил свой ответ с большим количеством объяснений. Сведения о файловых системах и монтировании см. В разделе Какие точки монтирования существуют в типичной системе Linux? и что подразумевается под монтированием устройства в Linux?
Жиль "ТАК - перестань быть злым"
Это удивительное объяснение. Я чувствую, что я многому научился. И дополнительные ссылки помогают. Таким образом, файловая система, созданная с помощью encfs, является «путаницей блоков исходного файла», и с помощью encfs вы можете перемещаться и читать ее; потому что исходная файловая система не совместима для использования этих блоков данных. и зашифрованный каталог скрыт, чтобы не попасть в него случайно. а если бы сделал, то ничего бы не увидел?
Васс
1
@Vass «файловая система, созданная с помощью encfs,« перемешивает блоки исходного файла », и с помощью encfs вы можете перемещаться и читать его»: да, именно так. Каталог ~/.encryptedсодержит зашифрованный текст; Вы можете получить к нему доступ, не заходя encfs, но вы увидите там только зашифрованные данные.
Жиль "ТАК - перестань быть злым"
2

Я не хочу создавать новый файл как зашифрованную версию, а затем удалять предыдущие, которые не зашифрованы

Но это именно тот сценарий, который вы описали ... "иметь возможность зашифровать каталог или расшифровать его"

Я подозреваю, что решение, которое вы ищете, является зашифрованным FUSE или подобным . Файловая система хранится в зашифрованном файле, и при монтировании (с парольной фразой) существует прозрачный доступ через уровень VFS.

symcbean
источник
Создание нового файла и удаление предыдущего - это .zip-маршрут с защитой паролем. Я не понимаю файловую систему и маршрут монтирования, на который вы ссылаетесь. Нет ли какой-нибудь программы, которая каким-то образом перемешивает файл и затем может привести его в порядок?
Васс
да, вот целый список зашифрованных файловых систем FUSE. Почтовый путь является самым простым
BSD
@ Васс Я не понимаю, что вы имеете в виду под «почтовым индексом»: там нет никакого почтового индекса. Открытый текст никогда не хранится на диске (это будет намного сложнее и лишит большинство целей шифрования).
Жиль "ТАК - перестать быть злым"
2
Путь zip route / zip предназначен для рекурсивного архивирования каталога с опциями шифрования / пароля. Однако затем, когда кто-то хочет получить доступ к файлу, он должен извлечь незашифрованный файл из zip-файла, прочитать файл и затем удалить или отредактировать файл, а затем обновить zip-файл новым файлом, а затем удалить промежуточный файл. Он ищет прозрачность зашифрованной файловой системы, но на уровне каталогов. Я и другие предлагаю FUSE с зашифрованным фс. «Простой» - это вопрос перспективы и опыта.
BSD
@ Да, ты правильно сформулировал. Я не понимаю файловые системы и их работу. Я бы слепо работал с командами, не понимая концепций.
Васс