Добавляем Яндекс.Диск, как файловую систему в Linux

Здесь будет рассмотренно, как добавить Яндекс.Диск в linux систему с помощью davfs2 на примере Debian GNU/Linux, автоматическое монтирование при старте системы через /etc/fstab, и шифрование с использованием encfs.

Монтируем

Установка ПО

apt-get install davfs2

Настройка

Создадим каталог для монтирования. В debian это обычно делается в /media. Назовём его .yandex-disc. Если шифрование не требуется имеет смысл назвать его yandex-disc без точки в начале. В нашем же случаи этот каталог напрямую использоваться не будет, так что имеет смысл сделать его скрытым

mkdir /media/.yandex-disc

Укажем логин и пароль от аккаунта yandex в /etc/davfs2/secrets

/media/.yandex-disc your-login your-password

Пропишем в /etc/fstab для монтирования во время загрузки системы. Директория диска получается с правами 777, поэтому туда смогут писать все пользователи системы. Была идея использовать опцию gid=plugdev и сделать dir_mode=0775, но при этом для пользователя входящего в группу plugdev всё равно выдаётся ошибка прав доступа при попытке записи. О этих и других опциях можно почитать в man mount.davfs

https://webdav.yandex.ru /media/.yandex-disc davfs auto,dir_mode=0777,_netdev 0 0

Пробуем монтировать вручную, дабы не производить перезагрузку

mount /media/.yandex-disc

Минусы

Davfs2 кэширует файл целиком прежде, чем отдавать его содержимое. А это значит, что если вы захотите прочитать 1 байт из начала 1 гигабайтного файла с примонтированной ФС, то сначала 1 гб скачается в папку с кэшем, а только потом вам вернется 1 байт. Конечно ни о каком просмотре видео и т.п. прямиком с такой ФС речи идти не может. Тоже самое происходит и с загрузкой на ФС: во время записи файл пишется в локальный кэш, и только после его закрытия начинает передаваться на webdav ресурс.

Чуть лучше дело обстоит с альтернативным драйвером fusedav, о настройке которого можно почитать в соседней статье.

Шифруем

Если мы собираемся хранить какие-либо приватные данные на этом диске, то имеет смысл их шифровать

Установка ПО

apt-get install encfs

Настройка

Создадим каталог для нашего конечного диска, через который будет производиться шифрация/дешифрация

mkdir /media/yandex-disc

Создадим файл с паролем к шифрованной ФС, например в /root/secrets/encfs, впишем любой придуманный пароль. Измменим права на файл, что бы никто кроме пользователя root не смог прочитать его

chmod 600 /root/secrets/encfs

Создадим скрипт для encfs, который во-первых проследит за тем, что /media/.yandex-disc уже примонтирован прежде, чем монтировать /mdeia/yandex-disc, во вторых укажет нужные опции для encfs. Создадим его, например, в файле /root/bin/encfs-wrapper, не забыв сделать chmod +x /root/bin/encfs-wrapper

 #!/bin/sh
 {
 until grep "$1" /proc/mounts > /dev/null
 do
sleep 1;
 done
 encfs --public --extpass="cat /root/secrets/encfs" $*
 }&

Пропишем в /etc/fstab

/root/bin/encfs-wrapper#/media/.yandex-disc /media/yandex-disc fuse rw,auto 0 0

Пробуем монтировать (/media/.yandex-dsic должен быть уже примонтирован)

mount /media/yandex-disc

При первом монтировании encfs задаст вопрос, на который просто жмём enter. Если c encfs возник какой-то фейл, и при попытке монтирования он сообщает, что не может расшифровать диск, то стоит попробовать удалить config файл encfs, который он сохраняет в корне незашифрованной фс: ls /media/.yandex-disc/.*xml

Готово. Теперь мы можем использовать /media/yandex-disc, как обычный диск в системе (если не обращать внимание на скорость работы) и не опасаться за утечку приватных данных. Как выглядят зашифрованные файлы можно посмотреть в /media/.yandex-disc

Add comment

Fields marked * are required.
This form has a bot protection mechanism, that requires Cookies.
Please, don't disable them.



Gravatar-friendly




Paragraphs are created automatically. Available tags: [quote], [code].