Davfs2, Ubuntu и Яндекс Диск

yandex disk

Небольшая инструкция для тех, кто использует удалённое хранилище файлов от нового сервиса Яндекс Диск в Ubuntu.
Веб-интерфейс - это конечно круто. Использовать сетевую соединялку менеджера Nautilus тоже можно, но гораздо удобней поселить Диск Яндекса в системе под видом флешки. И подключать нажатием на пиктограмму.

Автостарт одновременно с Unity делать не советую, поскольку при выключении компьютера резко рвётся соединение, и можно потерять свои данные (аналогично горячему выдёргиванию флешки из компа). Но если всё же надо (утилита называется "автоматически запускаемые приложения", спрятана в системе, искать через поиск программ по соответствующему запросу на русском языке), делается это в последнюю очередь после того, как пользователь системы получит права на монтирование сетевого накопителя.

Ставим с репозиториев утилиту davfs2:
$ sudo apt-get install davfs2
Создаём папку, в которую будем монтировать наш Яндекс Диск:
$ mkdir /home/пользователь/yandex

Чтобы каждый раз не вбивать пароль к Яндекс Диску, который утилита будет просить при каждом соединении, сохраням его в конфиг secrets:
$ sudo echo "https://webdav.yandex.ru:443 логин_в_яндексе пароль_в_яндексе" >> /etc/davfs2/secrets
или
$ nano /etc/davfs2/secrets
В конец файла дописываем параметры соединения с сервером:
https://webdav.yandex.ru:443 логин_в_яндексе пароль_в_яндексе

Пробуем, как работает. Монтируем ручками:
$ sudo mount -t davfs https://webdav.yandex.ru:443 /home/пользователь/yandex

Здорово-великолепно, только это доступ чтения-записи для рута only, а нам нужно тоже самое, но для рядового пользователя.

Открываем fstab:
$ sudo nano /etc/fstab
Добавляем строчку:
https://webdav.yandex.ru:443 /home/папка_пользователя/yandex davfs uid=пользователь,file_mode=640,dir_mode=755,user,noauto 0 0
Обязательно noauto, иначе Ubuntu попытается подмонтировать накопитель при загрузке, а сетевой интерфейс поднимается позже.

Заносим своего пользователя в группу davfs2:
$ sudo usermod -a -G davfs2 пользователь

(по посказке анонимного гостя) Даём возможность запускать mount.davfs пользователю:
$ chmod 4755 /usr/sbin/mount.davfs

Пробуем монтировать от пользователя:
$ mount /home/пользователь/yandex
И размонтировать:
$ umount /home/пользователь/yandex

В наутилусе (Unity) Яндекс Диск должен видеться в виде отдельного накопителя и монтироваться по клику:

nautilus webdav yandex disk

23 комментария:

  1. Спасибо за детальное обозрение. В сети подобных предложений с каждым днём всё больше. (http://moeoblaco.ru/ -к примеру.) Да где набрать контент для хранения? Фото уже давно и в "облаке" и на внешнем диске. Остальное исправно поставляет интернет, с пылу - с жару...

    ОтветитьУдалить
  2. Я вот тоже думаю, что же там хранить. Но пока не придумал =).

    ОтветитьУдалить
  3. Спасибо все заработало, но от пользователя не монтируется (и не размонтируется) пишет
    /sbin/mount.davfs: program is not setuid root
    так sudo mount /home/пользователь/yandex
    все нормально

    ОтветитьУдалить
  4. Нашел решение для ошибки "/sbin/mount.davfs: program is not setuid root"
    Нужно выполнить команду:

    chmod 4755 /usr/sbin/mount.davfs

    После этого все ОК. Автор, добавь в статью :)

    ОтветитьУдалить
  5. Точно. Я забыл про шаг:
    chmod u+s /usr/sbin/mount.davfs
    или chmod 4755 /usr/sbin/mount.davfs

    Спасибо за fix =).

    ОтветитьУдалить
  6. Всем привет!
    Народ у кого какая скорость соединения с диском?

    ОтветитьУдалить
  7. Здравствуйте, у меня kde, такой вопрос, сделал всё как у вас написано - при загрузке Kubuntu - яндекс диск у меня не подключен, приходится делать "mount /home/пользователь/yandex" собственно в ubuntu также или при загрузке уже яндекс диск примонтирован?

    ОтветитьУдалить
  8. Здравствуйте. Во fstab специально прописано noauto, соответственно диск монтируется командой или щелчком по папке в "моём компьютере".

    Чтобы автоматом монтировался, нужно это сделать средствами самого окружения, гнома или кде.

    ОтветитьУдалить
  9. Я тут к Ubuntu One подключился. Оказывается, у меня рега была аж с 2009 года. One даже поудобней Яндекс Диска будет. Надёжность проверена временем :-).

    ОтветитьУдалить
  10. "noauto" в опциях монтирования fstab необязательна. Для того, чтобы раздел монтировался после поднятия сетевых интерфейсов, достаточно "noauto" заменить на "_netdev".

    ОтветитьУдалить
  11. Лично у меня Убунта ругалась (точно не помню), хотя надо ещё раз попробовать.

    ОтветитьУдалить
  12. У меня после такой настройки davfs стал ронять Nautilus - после того, как захожу в папку /media/yad, куда смонтировал диск и перемещаюсь в любую другую папку - Nautilus вешается напрочь.

    ОтветитьУдалить
  13. Надо отыскивать логи смотреть на ошибку. А что за Ubuntu? У меня пока 11.10, работает нормально. Единственный косяк - открытый видеодрайвер, но это уже из другой оперы.

    ОтветитьУдалить
  14. Альзо, можно заюзать опции uid и guid, чтобы монтировались файлы удалённой вебдав паки с нужными локальными правами. Выглядеть это будет так:

    mount -t davfs https://webdav.yandex.ru /mnt/webdav-yandex-ru -o uid=ololosh -o gid=ololosh

    Здесь монтируем корень удалённой папки на яндексе в папку /mnt/webdav-yandex-ru, которая будет доступна для чтения\записи юзеру (и группе) ololosh. Если не прокатит - добавляем "-o rw"

    ОтветитьУдалить
  15. Спасибо за статью!
    Подключил я.диск описанным способом и столкнулся с одной проблемой: при заходе в папку с большими файлами Thunar (у меня Xubuntu) очень долго тупит, как будто синхронизирует все файлы оттуда. При монтировании через gvfs такой проблемы нет, но задалбываюсь делать лишние клики и вводить пароль (почему-то Gigolo его не сохраняет). Подскажите, как можно исправить?
    P.S. 10 Гб это, конечно, мало для хранения всех своих пожитков, но в качестве замены флешки и файлообменников сервис показал себя отлично. Радует наличие WebDAV помимо проприетарного клиента. Жду, когда можно будет докупить гигабайты.

    ОтветитьУдалить
  16. Честно говоря, не могу подсказать, нет под рукой xfce, а в убунте такой проблемы не наблюдал.

    ОтветитьУдалить
  17. Ладно, все равно планирую поюзать MATE :)

    ОтветитьУдалить
  18. Автор, убери, пожалуйста, вот это:
    $ sudo echo "https://webdav.yandex.ru:443 логин_в_яндексе пароль_в_яндексе" >> /etc/davfs2/secrets

    Это не может работать, sudo не отрабатывает для редиректов.

    ОтветитьУдалить
  19. sudo sh -c 'echo "https://webdav.yandex.ru:443 логин_в_яндексе пароль_в_яндексе" >> /etc/davfs2/secrets'

    ОтветитьУдалить
  20. можно и автоматически монтировать, достаточно использовать опцию _netdev, тогда монтирование будет происходить только в случае доступности сети

    ОтветитьУдалить
  21. в строке "$ chmod 4755 /usr/sbin/mount.davfs" пропущено sudo

    ОтветитьУдалить
  22. Автомонтирование можно сделать через upstart

    cat /etc/init/yandex-disk.conf

    start on starting networking
    task
    script
    mount /home/папка_пользователя/yandex
    end script

    ОтветитьУдалить
  23. а есть опция _netdev у fstab, для авто монтирования диска только при подключенной сети

    ОтветитьУдалить