Зашифрованная папка Snapshottable

[]является ярлыком команды test.

Согласноman test:

-t FD
True if FD is a file descriptor that is associated with a terminal.

Таким образом, если вы используете bash как интерактивную оболочку (терминал -, см. эту ветку для объяснения терминологии ), bash будет заменен на zsh.

Подробнее о файлах.bash *:

When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.

When a login shell exits, bash reads and executes commands from the files ~/.bash_logout and /etc/bash.bash_logout, if the files exists.

When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force bash to read and execute commands from file instead of ~/.bashrc.

Комментарий Стефана Шазела:
Обратите внимание, что оболочка может быть интерактивной без того, чтобы стандартный вывод был терминалом, и оболочка может быть не -интерактивной с терминалом на стандартном выходе (, как в любое время, когда вы запускаете скрипт в терминале без перенаправления/передачи его вывода ), и bashможет читать .bashrc, даже если он не интерактивен (, как в ssh host cmd, где bash— это оболочка входа пользователя на хосте, илиbash --login -c 'some code'). case $- in *i*)...— это правильный способ проверить, является ли оболочка интерактивной.

2
07.10.2019, 20:07
1 ответ

Это, безусловно, возможно , так или иначе.

Я делаю это с файлом образа, двумя слоями файловой системы (ZFS )и одним слоем dm -crypt. Установку легко описать. :Поместите моментальный снимок -и транзакционную -устойчивую файловую систему в файл образа, поместите новый файл образа в эту файловую систему. Создайте зашифрованное блочное устройство этого файла с помощью cryptsetup. Создайте новую файловую систему на этом блочном устройстве и смонтируйте ее в удобном месте.

Теперь можно сделать моментальный снимок незашифрованной файловой системы и сохранить файл образа с зашифрованной файловой системой из этого моментального снимка.

Файловые системы должны быть -устойчивыми к транзакциям на случай, если моментальный снимок будет сделан в неудобное время. Незавершенные транзакции будут проигнорированы, и в результате должна получиться непротиворечивая версия файлов. Тем не менее, есть некоторые технические сложности с упорядочением, если обновляется несколько файлов (, которые я не могу объяснить ), поэтому база данных может быть расстроена результатом. Я думаю, что nilfs2 имеет параметр конфигурации для использования строгой синхронизации в этом случае, если это важно.

На практике существует множество сложных и -склонных к сбоям шагов по установке и удалению этого, поэтому рекомендуется использовать сложные и -устойчивые к сбоям сценарии с надлежащим тестированием того, что уже сделано/отменено. Я использую zfs, потому что он прост в управлении и упрощает эту задачу.

1
27.01.2020, 22:16

Теги

Похожие вопросы