Одночасне монтування зашифрованих папках у Synology DSM



Якщо у вас є Synology і рівень вашої параноїдальності >0, то напевно ви використовуєте зашифровані папки. Заснована на encfs ця технологія працює стабільно і не доставляє ніяких незручностей. Крім того випадку, коли цих папок ставати 2-3, та ще кожна зі своїм паролем! Адже за результатами досліджень британських вчених, рівень параноїдальності окремого індивіда з часом тільки зростає)
Відповідно, вводити 2-3 різних пароля після кожного, хоча і досить рідкісною, перезавантаження пристрою, починає напружувати.

Тому ми влаштуємо щось на зразок майстер пароля.
Першим ділом створимо нову шифровану папку, назвемо її master.

У неї покладемо скрипт autorun.sh (нижче мається на увазі, що ви маєте доступ до Synology через SSH):

cat /volume1/master/autorun.sh

synoshare –enc_mount folder1 PASSWORD1
synoshare –enc_mount folder2 PASSWORD2
synoshare –enc_mount folder3 PASSWORD3
synoshare –enc_ummount master 

, де folderx – папка і PASSWORDx пароль від неї.

Як бачите, ми просто одну за одною монтуємо зашифровані папки, а потім размонтируем саму папку master. Таким чином, ніхто не може дістатися до паролів, у відкритому вигляді прописаних в скрипті.
Якщо папки вже замонтіровани — нічого страшного не відбудеться, тому ніяких додаткових перевірок ми не робимо.

Незважаючи на те, що ми не плануємо довго тримати папку master в подмонтированном (відкритому) сотоянии, до скрипту autorun.sh треба максимально обмежити доступ:

chown root autorun.sh
chmod 700 autorun.sh 

тепер справа за малим: нам необхідний механізм, який буде стежити за появою файлу autorun.sh у папці master і виконувати його. Напишемо простий сервіс:

Примітка: Шлях до сервісу вказаний для DSM 6.x. Для DSM 5.x шлях до сервісів: /usr/syno/etc/rc.d/ Майте на увазі, після оновлення системи пользвательские сервіси можуть бути видалені.


cat /usr/local/etc/rc.d/S90_automount.sh

autorun=/volume1/master/autorun.sh
sleep=10

if [ "$1" == "start" ]; then
$0 service &
echo "Automount service started. Looking for $autorun"
exit
fi

if [ ! "$1" == "service" ]; then
echo "Usage: $0 start"
echo " Wait for $autorun and run it"
exit 1
fi

while [ 1 ]; do
sleep $sleep
if [ -f $autorun ]; then
echo "Found $autorun, running..."
$autorun &
sleep 120
fi
done


На цьому все! Як ви бачите, ми просто в циклі перевіряємо наявність файлу і якщо він знайдений — виконуємо його. Можна було оптимізувати виконання і замість циклу з sleep використовувати команду inotifywait, але судячи з усього цей пакет не входить до складу DSM.
У сервісу вельми обмежений функціонал, всього один параметр start і немає пераметрів stop і status, але вони і не потрібні.

Тепер сміливо запускаємо сервіс: /usr/local/etc/rc.d/S90_automount.ѕр start
і перевіряємо, що при монтуванні папки master в протягом 10-20 секунд будуть примонтированы папки, перераховані у файлі autorun.sh, а сама папка master автоматично отмонтируется.

З мінусів — рано чи пізно ви забудете всі свої паролі на папки, крім одного. І якщо раптом втратите папку master – пиши пропало! По можливості уникайте цього!
З плюсів — тепер ви можете на папки призначити скільки завгодно довгі паролі — вводити вручну вам більше не доведеться!

Вдалого адміністрування!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.