Это может быть выполнено ВЫБОРОМ... NOWAIT; пример здесь .
Один из способов - использовать vim
. См. эту страницу и этот вопрос, связанный с .
Если вам нужна большая гибкость или вы не хотите использовать vim
, напишите короткую программу для чтения расшифрованного текста из STDOUT, отредактируйте по своему усмотрению, а затем повторно зашифруйте. Например, вы можете использовать этот минимальный код Python (104 строки!), Чтобы получить простой редактор, а затем самостоятельно добавить функции чтения и записи потока.
Следует иметь в виду, что хранение незашифрованных данных в памяти не гарантирует, что они не попадут на диск. Если рассматриваемая система находится под большой нагрузкой, любые незашифрованные данные могут быть записаны в раздел подкачки. Точно так же, если система переведена в спящий режим, состояние любых приостановленных процессов будет сохранено на диск. Если ваша программа работает во встроенной системе, вполне возможно, что ваша память и «диск» - одно и то же.
Системный вызов mlock ()
защитит выделенную память от подкачки на диск. Однако это требует прав администратора и ограничивает вас низкоуровневым языком, на котором вы несете прямую ответственность за управление памятью.
Тем не менее, разумно избегать создания файлов с незашифрованными данными. Просто знай, что это не так
Если ваш редактор может читать ввод из канала и сохранять в канал, тогда вы можете использовать версию gpg, который расшифровывает в стандартный вывод и шифрует из стандартного ввода. К сожалению, для nano чтение с конвейера запланировано только на для 2.4 . Например, для gvim вы можете привязать дешифрование и шифрование (через каналы) к ключу .
Альтернативой является наличие файловой системы tmp в оперативной памяти с использованием tmpfs, тогда при выключении питания она исчезнет навсегда.