bioid
@bioid

Алгоритм или бестпрактис для синхронизации .dotfiles?

Исходные данные. Работаю поочередно за тремя компами (дома комп и ноут + на работе комп).
Синхронизирую конфиг систем и дотфайлы домашнего каталога через ансибл и его модуль rsync. Таким образом, везде всё одинаковое.
Но есть большой недостаток - в алиасах баша открытым текстом пароли виндовых хостов и их пользователей. Этих алиасов очень много.
В принципе все алиасы freerdp вынесены в отдельный файл .freerdp_aliases, который инклудится из .bashrc.
По понятным причинам компрометация этого файла - последнее чего бы хотелось.

Предполагаю, что можно сделать его зашифрованным через openssl и именно его синхронизировать или даже версионировать через git (или оставить текущую схему с ансибл). При входе в систему расшифровывать его, кладя в RAM и подключать через "source .bashrc". Работать. После окончания рабочего дня расшифрованный файл надо удалить (ну или изначально при начале работы класть его в RAM).
Но в этот файл регулярно вносятся изменения, бывает раз в день, а бывает лишь один раз в месяц.

Значит после внесения изменений в него, его надо зашифровать. и затереть этим новым шифрованным файлом старый зашифрованный файл. И это желательно делать автоматически, как только внесены изменения в расшифрованный файл, чтобы исключить фактор "забыл руками это сделать", отключение электричества etc. Тут еще паралельный вопрос: А если я не запушил в git эти изменения, и потом еще отредактировал файл на одном или двух своих других хостах, там зашифрованный файл будет оличаться, то гит разрулит зашифрованные файлы как-то?

Какой алгоритм и инструменты посоветуете?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 2
vabka
@vabka
Токсичный шарпист
Бест практиса не существует.
Есть очень дохрена разных инструментов, вплоть до специального модуля для ансибла.

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

https://project-awesome.org/webpro/awesome-dotfiles
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer

Предполагаю, что можно сделать его зашифрованным через openssl и именно его синхронизировать или даже версионировать через git (или оставить текущую схему с ансибл). При входе в систему расшифровывать его, кладя в RAM и подключать через "source .bashrc". Работать. После окончания рабочего дня расшифрованный файл надо удалить (ну или изначально при начале работы класть его в RAM).
Но в этот файл регулярно вносятся изменения, бывает раз в день, а бывает лишь один раз в месяц.


Не самый плохой вариант шифровать через openssl.
Только зачем расшифровывать файл? Расшифровывайте прямо в память во время использования

то есть в .bashrc можно например так

dbuser=database_user
dbpass="$(openssl enc -d -base64 -aes-128-ctr -nopad -k secret_key.txt<<<"l1k2j3kl14jjkl321h4lk124123;ljk2`13jlkj")"

Синтаксис из головы написал, надо уточнить как указать путь к файлу с мастер секретом.
При этом файл остается зашифрованным, но в текущей сесии переменная уже с открытым паролем.
Либо можно сделать несколько файлов подобного типа и инклюдать их в скрипты прямо перед использованием.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@pfg21
ex-турист
если уже используешь rsync, то посоветую подняться чутка и выше и перейти на демона syncthing.
связь между клиентами качественно шифрована. никаких левых облаков и серверов - все данные только на своих компутерах. передача изменений в онлайн
есть возможность на некоторых клиентах хранить шифрованную копию раздачи без возможности доступа к файлам.
есть несколько вариантов по сохранению измененных файлов (простая корзина и сложнее)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы