Если у вас есть 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 в подмонтированном (открытом) сотоянии, к cкрипту 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.sр start
и проверяем, что при монтировании папки master в течении 10-20 секунд будут примонтированы папки, перечисленные в файле autorun.sh, а сама папка master автоматически отмонтируется.
Из минусов — рано или поздно вы забудете все свои пароли на папки, кроме одного. И если вдруг потеряете папку master – пиши пропало! По возможности избегайте этого!
Из плюсов — теперь вы можете на папки назначить сколь угодно длинные пароли — вводить вручную вам их больше не придется!
Удачного администрирования!
Автор: Antonto