Содержание
В данной статье рассмотрены основы применения утилиты «davfs2» (см. davfs2) для монтирования сетевых облачных хранилищ (дисков) по протоколу «WebDAV» (см. WebDAV) в среде ОС «Ubuntu».
Облачные хранилища (диски) находят все большее практическое применение. В то время, как многие поставщики подобных услуг предлагают свое программное обеспечение для доступа к своим сетевых ресурсам, существует широко распространенный протокол, для передачи информацию между удаленным облачным хранилищем и локальной ЭВМ пользователя – «WebDAV» (см. WebDAV). Применение такого протокола также требует специализированного программного обеспечения, однако, оно, зачастую, легко доступно.
В ОС «Ubuntu» имеется поддержка монтирования сетевых облачных хранилищ (дисков) с применением графического интерфейса программы-файлового-менеджера «Nautilus», который использует утилиту «GVFS» (см. GVFS). Однако, такой подход имеет ряд недостатков:
- Примонтированный облачный диск доступен только для программ использующих графическую оболочку Gnome/Unity.
- Присутствует доля отказов данного функционала (см. can't connect to webdav shares).
Альтернативой использованию пакета «GVFS» является утилита поставляемая в пакете «davfs2» (см. davfs2). Эта утилита позволяет монтировать облачный диск подобно монтированию обычного носителя данных – в постоянную локацию, что делает такой диск доступный для любой программы имеющей доступ к ФС ОС. В свою очередь, такой метод тоже имеет свой недостатки:
- Сложность настройки.
- Файловые менеджеры считают папки примонтированные с помощью «davfs2» локальными и будут пытаться получить информацию и сгенерировать эскизы для медиа-файлов, что требует скачивания этих файлов. А это требует времени в течении которого файловый менеджер будет недоступен, а интернет-соединение загружено передачей данных.
Установка
Ввиду того, что утилита «davfs2» из одноименного пакета не входит в базовую комплектацию ОС «Ubuntu», следует провести предварительную установку данного пакета. Выполнить это можно, например, командой в терминале
sudo apt-get install davfs2
Настройка
По завершении установки следует выполнить переконфигурирование пакета, например, командой
sudo dpkg-reconfigure davfs2
выбрав пункт «Да», для разрешения монтирования облачных хранилищ непривилегированным пользователям ОС. Вместо этого можно просто выполнить команду
sudo chmod 4755 /usr/sbin/mount.davfs
Также, для удобного монтирования, без необходимости ввода пароля корневого пользователя (root), необходимо добавить пользователя в группу «davfs2» ( - это точно для этого?). Например, если планируется добавить данного пользователя, следует выполнить команду.
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
необходимо ввести строку
$PathToMountPoint $USER $PASSWORD
с указанием абсолютного пути точки монтирования вместо «$PathToMountPoint» (так же как указано в файле «/etc/fstab»), имени пользователя у поставщика облачного диска вместо «$USER» и его пароля вместо «$PASSWORD», например
/mnt/cloud MyName 12345
Можно указывать адрес облачного диска, а не путь монтирования
$WebDAV_Address $USER $PASSWORD
где параметр «$WebDAV_Address» аналогичен описанному в файле «/etc/fstab», например,
https://example.com/webdav.php MyName 12345
Имеются проблемы с символами $^#& и пробелами в паролях. Следует использовать Escape-символы или окружать пароль скобками " ". Например пароль «qwe # rty» можно записать как
"qwe # rty"
или
qwe\ \#\ rty
Ввиду наличия секретной информации в этом файле, обязательно следует запретить другим пользователям системы производить его чтение, например, командой
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 davfs user,rw,_netdev 0 0
где «$WebDAV_Address» надо обязательно заменить на веб-адрес поставщика услуги сетевого облачного диска, а «$PathToMountPoint» обязательно заменить на абсолютный путь к точке монтирования (без переменных среды, начинающихся с символа «$», путь должен начинаться с символа «/»). Опция «noauto» указывает, что монтирование производится вручную (см. ниже), в то время как альтернативная ей опция «_netdev» – что монтирование будет произведено автоматически при наличии подключенного сетевого интерфейса (см. fstab).
Например, для распространенных поставщиков облачных дисков (и соответственно подобранного названия точки монтирования) эта строка описана ниже.
- «Яндекс Диск» (см. Работа через WebDAV). Строка в «/etc/fstab» может иметь вид
https://webdav.yandex.ru:443 /media/Yandex davfs user,rw,noauto 0 0
В этом примере явно указан порт для подключения. Это не обязательно, если поставщик облачного диска использует стандартные порты: 80 для HTTP и 443 для HTTPS.
- «4shared» (см. What is WebDav and how to use it ). Строка в «/etc/fstab» может иметь вид
https://webdav.4shared.com/ /media/4shared davfs user,rw,noauto 0 0
- «IDriveSync» (см. IDriveSync join hands with WebDAV). Строка в «/etc/fstab» может иметь вид
https://dav.idrivesync.com/ /media/IDriveSync davfs user,rw,noauto 0 0
- Облачные диски на основе «ownCloud» (см. ownCloud, OwnCloud). Здесь есть особенность, т.к. сервис «ownCloud» может работать на вашем сервере, тогда адрес необходимо прописывать следующим образом
http://ваш_сервер.ru/owncloud/files/webdav.php
если вы пользуетесь общим сервером «ownCloud», то строка в «/etc/fstab» примет вид:
http://getfreecloud.com/files/webdav.php /media/ownСloud davfs user,rw,noauto 0 0
Еще один поставщик облачного диска, работающего на основе «ownCloud», это «OwnCube». Строка в «/etc/fstab» может иметь вид
https://owncube.com/files/webdav.php /media/OwnCube davfs user,rw,noauto 0 0
Проверка монтирования
После завершения данных манипуляций целесообразно проверить монтирование, выполнив команду «mount»
mount $PathToMountPoint
где «$PathToMountPoint» точка монтирования облачного диска описанная в «/etc/fstab». Или
mount $WebDAV_Address
где $WebDAV_Address адрес для доступа к облачному диску, прописанный в «/etc/fstab».
Отмонтировать такой диск можно командой «umount»
umount $PathToMountPoint
или
umount $WebDAV_Address
Монтирование через Nautilus
Если вы создали точку монтирования в папке «/media», то на левой панели файлового менеджера Nautilus будет доступна кнопка, по нажатию на которой будет происходить монтирование\размонтирование, как с обычной флешкой.
Автоматическое монтирование
Опция «noauto» не позволяет диску примонтироваться автоматически при старте системы. Для автоматического монтирования необходимо воспользоваться опцией «_netdev» (см. fstab), в таком случае попытка примонтировать диск будет произведена при загрузке системы, до входа под конкретным пользователем. Для этого, учетные данные доступа к облачному диску должны хранится в «/etc/davfs2/secrets» (см. Настройка учетных данных). Такой облачный сетевой диск будет монтироваться для всех пользователей ОС.
Если же диск должен монтироваться только для конкретного пользователя, то наряду с указанием опции «noauto» в «/etc/fstab» следует создать подобный скрипт
#!/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"/Музыка
Добавить созданный скрипт на ежемесячное выполнение в cron от пользователя root
sudo ln -s ~/bin/backup.sh /etc/cron.monthly/backup.sh
Шифрование
Проблемы
- Существенная проблема данного подхода к монтированию облачных дисков состоит в том, что файловые менеджеры («Nautilus», «Dolphin» и т.п.) считают такие файлы и папки локальными, как результат – пытаются сгенерировать для них эскизы и получить другую медиа-информацию, что приводит к скачиванию этих файлов, а это может затянуться на некоторое время, в течение которого файловый менеджер будет недоступен, а канал связи загружен. Решить эту проблему можно отключив все эскизы в Вашем файловом менеджере или использовать другой файловый менеджер, например «MC»
Ссылки
- О «davfs2» на Wikipedia (англ.) davfs2
- О протоколе «WebDAV» на Wikipedia WebDAV
- О проекте «GVFS» на Wikipedia (англ.) GVFS
- Отчет о программном сбое утилиты «GVFS» can't connect to webdav shares
- Инструкция по подключению к облачному хранилищу «4shared» по «WebDAV» What is WebDav and how to use it
- Инструкция по подключению к облачному хранилищу «IDriveSync» по «WebDAV» IDriveSync join hands with WebDAV
- forum.ubuntu.ru– Обсуждение статьи на форуме
- Яндекс.Диск– страница проекта
- Бекап на Яндекс.Диск с Déjà Dup– источник
- «wdfs» - утилита для монтирования «WebDAV» через «FUSE» (без прав суперпользователя). Можно найти в PPA на launchpad.net, или легко скомпилировать с помощью утилиты «checkinstall»