Использование утилиты davfs2 для монтирования сетевых облачных хранилищ по протоколу WebDAV
В данной статье рассмотрены основы применения утилиты «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