Это старая версия документа.


В данной статье рассмотрены основы применения утилиты «davfs2» (см. davfs2) для монтирования сетевых облачных хранилищ (дисков) по протоколу «WebDAV» (см. WebDAV) в среде ОС «Ubuntu».

Облачные хранилища (диски) находят все большее практическое применение. В то время, как многие поставщики подобных услуг предлагают свое программное обеспечение для доступа к своим сетевых ресурсам, существует широко распространенный протокол, для передачи информацию между удаленным облачным хранилищем и локальной ЭВМ пользователя – «WebDAV» (см. WebDAV). Применение такого протокола также требует специализированного программного обеспечения, однако, оно, зачастую, легко доступно.

В ОС «Ubuntu» имеется поддержка монтирования сетевых облачных хранилищ (дисков) с применением графического интерфейса программы-файлового-менеджера «Nautilus», который использует утилиту «GVFS» (см. GVFS). Однако, такой подход имеет ряд недостатков:

  • Примонтированный облачный диск доступен только для программ использующих графическую оболочку Gnome/Unity.
  • Присутствует доля отказов данного функционала (см. can't connect to webdav shares).

Альтернативой использованию пакета «GVFS» является утилита поставляемая в пакете «davfs2» (см. davfs2). Эта утилита показывает большую отказоустойчивость и позволяет монтировать облачный диск подобно монтированию обычного носителя данных – в постоянную локацию, что делает такой диск доступный для любой программы имеющей доступ к ФС ОС. В свою очередь, такой метод тоже имеет свой недостаток – сложность настройки.

Установка

Ввиду того, что утилита «davfs2» из одноименного пакета не входит в базовую комплектацию ОС «Ubuntu», следует провести предварительную установку данного пакета. Выполнить это можно, например, командой в терминале

sudo apt-get install davfs2

Настройка

По завершении установки следует выполнить переконфигурирование пакета, например, командой

sudo dpkg-reconfigure davfs2

выбрав пункт «Да», для разрешения монтирования облачных хранилищ непривилегированным пользователям ОС. Заместо этого можно просто выполнить команду

sudo chmod 4755 /usr/sbin/mount.davfs

Также, для удобного монтирования, без необходимости ввода пароля корневого пользователя (root), необходимо добавить пользователя в группу «davfs2» (FIXME - это точно для этого?). Например, если планируется добавить данного пользователя, следует выполнить команду.

sudo usermod -aG davfs2 $USER

Если необходимо добавить другого пользователя ОС, то «$USER» следует заменить на имя пользователя в ОС, которому будет дозволено монтировать облачные диски посредством «davfs2».

Создание точки монтирования

Монтирование возможно только в существующую папку, создать которую можно, например, командой

mkdir $PathToMountPoint

или

sudo mkdir $PathToMountPoint

если для создания папки требуются административные привилегии. Где «$PathToMountPoint» следует заменить допустимым именем в ФС ОС «Ubuntu». Например, «$PathToMountPoint» может принимать следующие значения

  • «$HOME/CloudDisk» – точка монтирования размещена в домашней папке пользователя и под-папке «CloudDisk».
  • «/media/CloudDisk» – точка монтирования размещена в системной папке «/media» и под-папке «CloudDisk». Для создания требуются административные привилегии. Рекомендуется создавать точку монтирования в папке «/media», потому что при этом облачное хранилище будет доступно к монтированию\размонтированию через Nautilus.

Во избежание конфликтов, такую папку (естественно с другим именем) следует создавать для каждого удаленного облачного диска, который планируется использовать.

Настройка учетных данных

Для того, что бы не было необходимости вводить пароль при каждом монтировании, следует сообщить имя пользователя удаленного облачного диска и его пароль утилите «davfs2». Для этого необходимо редактировать файл «/etc/davfs2/secrets» или «$HOME/.davfs2/secrets».

Эти файлы содержат секретную информацию (пароль пользователя для доступа к удаленному облачному диску), следует позаботится о их сохранности и защищенности

Файл «/etc/davfs2/secrets» является системным, доступ на чтение к нему имеет только корневой пользователь «root», поэтому хранение пароля в нём более безопасно. Файл «$HOME/.davfs2/secrets» после установки пакета «davfs2» не существует. Его следует создать, например, выполнив команды

mkdir $HOME/.davfs2
touch $HOME/.davfs2/secrets

Если файл уже существовал, то выполнение этих команд не навредит его содержимому. Далее рассматривается указание аутентификационной информации пользователя облачного диска в файле «$HOME/.davfs2/secrets».

Открыв этот файл для редактирования, например, командой

xdg-open $HOME/.davfs2/secrets

необходимо ввести строку

$WebDAV_Address $USER $PASSWORD

где параметр «$WebDAV_Address» аналогичен описанному в файле «/etc/fstab», а «$USER» и «$PASSWORD» данные аутентификации пользователя у поставщика сервиса облачного диска.

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

chmod 600 $HOME/.davfs2/secrets

Настройка монтирования

fstab

Сопоставление адреса облачного диска и точки его монтирования производится за счет информации в файле «/etc/fstab» (см. fstab, fstab). В этот файл следует внести информацию о параметрах монтирования для каждого облачного диска. Для редактирования этого файла можно выполнить команду (требуются административные привилегии)

sudo gedit /etc/fstab

Файл «/etc/fstab» следует дополнить строкой (дописать в самом конце)

$WebDAV_Address $PathToMountPoint davfs user,rw,noauto 0 0

где «$WebDAV_Address» надо обязательно заменить на веб-адрес поставщика услуги сетевого облачного диска, а «$PathToMountPoint» обязательно заменить на абсолютный путь к точке монтирования (без переменных среды, начинающихся с символа «$», путь должен начинаться с символа «/»). Например, для распространенных поставщиков облачных дисков (и соответственно подобранного названия точки монтирования) эта строка описана ниже.

https://webdav.yandex.ru:443 /media/Yandex davfs user,rw,noauto 0 0

подробнее о подключении к Яндекс.Диск через WebDav можно почитать в этой статье.

https://webdav.4shared.com/ /media/4shared davfs user,rw,noauto 0 0
  • «OwnCube». Строка в «/etc/fstab» может иметь вид
https://owncube.com/files/webdav.php /media/OwnCube davfs user,rw,noauto 0 0
https://dav.idrivesync.com/ /media/IDriveSync davfs user,rw,noauto 0 0
При ручном наборе этих строк обратите внимание, на то, что многие поставщики облачных дисков используют протокол HTTPS вместо HTTP. Опция noauto обязательна, так как в противном случае система будет пытаться подключить диск до поднятия сетевого интерфейса.

Проверка монтирования

После завершения данных манипуляций целесообразно проверить монтирование, выполнив команду «mount»

mount $PathToMountPoint

где «$PathToMountPoint» точка монтирования облачного диска описанная в «/etc/fstab».

Отмонтировать такой диск можно командой «umount»

 umount $PathToMountPoint

Монтирование через Nautilus

Если вы создали точку монтирования в папке «/media», то на левой панели файлового менеджера Nautilus будет доступна кнопка, по нажатию на которой будет происходить монтирование\размонтирование, как с обычной флешкой.

Автоматическое монтирование

Опция noauto не позволяет диску примонтироваться автоматически при старте системы. Для автоматического монтирования необходимо создать подобный скрипт

#!/bin/bash
sleep 120 && mount https://webdav.yandex.ru

и добавить его в автозагрузку.

Резервное копирование

Бекап с помощью Déjà Dup

Особенность программы Déjà Dup заключается в том, что она поддерживает работу по webdav. Минусы данного способа резервного копирования - файлы на сервере невозможно прочесть без данной программы и копировать можно только каталоги своего пользователя Для работы необходимо:

  • настроить папки для резервного копирования (при необходимости указать папки-исключения);

  • настроить расписание автоматического резервного копирования (если необходимо);

  • указать носитель

    Местоположение резервной копии: WebDav

    Сервер: webdav.yandex.ru

    Использовать защищенное соединение (HTTPS)

    Порт: 443

    Папка: указать папку на Яндекс.Диск (например: /backup)

    Имя пользователя: Имя пользователя Яндекс.Диск без @yandex.ru

  • для запуска необходимо нажать «Создать резервную копию»

Бэкап с помощью rsync(терминал)

Способ, использующий для резервного копирования программу rsync позволяет сделать копию любого файла на вашем компьютере, в том числе файлов настроек и системных файлов. Для настройки необходимо:

  • Создать скрипт, выполняющий резервное копирование. Файл в любом удобном для вас месте1) со следующим содержимым:

#!/bin/bash
mount -t davfs https://webdav.yandex.ru
notify-send "Запущено резервное копирование, дождитесь сообщения о завершении" -i deja-dup
rsync -qralo --delete-before --exclude-from=/home/<имя_пользователя>/bin/backup.conf / /media/Яндекс.Диск/backup
umount https://webdav.yandex.ru
notify-send "Резервное копирование окончено" -i deja-dup
  • данный скрипт использует файл ~/backup.conf добавляя в исключения все записанные в нем каталоги. Файл ~/bin/backup.conf должен иметь вид:

/media
/dev
/mnt
/tmp
/proc
/sys
/var/backups
/var/cache
/usr/src
 
/home/"user_name1"/Загрузки
/home/"user_name1"/Видео
 
/home/"user_name2"/Музыка
Данный скрипт будет пытаться сделать резервную копию абсолютно всей файловой системы, поэтому, ввиду ограниченности пространства сетевого хранилища, уделите особое внимание указанию папок-исключений.
На момент написания статьи наблюдаются проблемы в скорости работы rsync при обращении к Яндекс.Диск, ориентировочно из-за медленного расчета контрольной суммы на стороне сервера, поэтому делать резервные копии большого объема пока нежелательно.
  • Добавить созданный скрипт на ежемесячное выполнение в cron от пользователя root

sudo ln -s ~/bin/backup.sh /etc/cron.monthly/backup.sh

Шифрование

FIXME

Ссылки

1)
рекомендую хранить все свои скрипты в папке ~/bin, она не удалится при переустановке системы