Перейти к содержимому

Монтируем (подключаем) Yandex диск в локальную папку


Рекомендуемые сообщения

Эта тема основана на темах http://forum.zyxmon.org/topic249-podkly ... etiku.html и http://forums.zyxmon.org/viewtopic.php?f=5&t=33 и учитывает специфику кинетиков с прошивкой ndmsv2.

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

1. Кинетик с прошивкой от 02.07.2016 или более поздней в которой есть файл (симлинк) /etc/mtab

ls -l /etc
lrwxrwxrwx    1 root     root             7 Jul  2 08:29 TZ -> /var/TZ
.....
lrwxrwxrwx    1 root     root            12 Jul  2 08:29 mtab -> /proc/mounts
 

2. Установленная система пакетов Entware-keenetic - viewtopic.php?f=4&t=333

3. Установленный модуль ядра fuse - viewtopic.php?f=3&t=471

fuse.png

Ссылка на комментарий
Поделиться на других сайтах

Автоматизируем монтирование

Чтобы каждый раз не вводить логин и пароль, создадим файл /opt/etc/davfs2/yandex

В файл добавим 3 строки. 1-я логин, 2-я пароль, 3-я буква y. Файл должен заканчиваться символом конца строки и иметь UNIX окончания строк. Создавайте и редактируйте его прямо на роутере.

Создадим исполняемый скрипт запуска, для тестирования сначала в домашней папке

touch S99ya_disk
chmod +x S99ya_disk

Содержимое файла

#!/opt/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

chmod 644 /dev/urandom
chmod 644 /dev/random
chmod 644 /dev/ptmx
chmod 666 /dev/null

MOUNTPOINT=/opt/ya


case "$1" in
   start)
       mkdir -p $MOUNTPOINT
       mount -t davfs https://webdav.yandex.ru $MOUNTPOINT -o rw < /opt/etc/davfs2/yandex >/dev/null
       ;;
   stop)
       if ( (mount | grep -q yandex) ); then
           umount $MOUNTPOINT
       fi
       ;;
   restart)
       stop
       sleep 1
       start
       ;;
   *)
       echo "Usage: $0 {start|stop|restart}"
       ;;
esac

Проверим скрипт. Команда `./S99ya_disk start` должна монтировать yandex, а команда `./S99ya_disk stop` должна его размонтировать.

Если все работает и Вам нужно монтировать yandex диск при старте кинетика, скопируйте этот файл в папку /opt/etc/init.d

Внимание!!! Скрипт может запуститься когда еще нет соединения с интернетом, или не прошла полная инициализация маршрутизатора. В этом случа он не проработает. Чтобы этого не случилось, добавьте перед строкой mount в функции start строку `sleep nnn` (nnn - число секунд, например `sleep 10`). Это добавит паузу перед монтированием. Величину паузы подберите экспериментально.

Ссылка на комментарий
Поделиться на других сайтах

  • 4 months later...

Помогите люди добрые

да действительно все работает на ура , но только если файлы или папки создавать прямо в МС кинетика,а вот проводник с виндовс или клиент FTP живет на своей волне

Ссылка на комментарий
Поделиться на других сайтах

  • 2 weeks later...

Все красиво работает .. только я бы дополнил маленько скрип запуска вот так

case "$1" in

   start)

       mkdir -p $MOUNTPOINT

     

       if [ -f /opt/var/run/mount.davfs/opt-ya.pid ]; then

         rm /opt/var/run/mount.davfs/opt-ya.pid

       fi

      

   

 

Иначе при использовании оригинала скрипа из первого поста при "случайном" пропадании электричества .. после перегрузки роутера yandex.disk монтроваться не будет .... 

Изменено пользователем Dorik1972
Ссылка на комментарий
Поделиться на других сайтах

  • 4 months later...

Смонтированный диск "занимает" место на физических носителях роутера? ну там кеши какие нибудь?

монтировал в винде яндекс диск и отображалось что свободного места ровно столько сколько на диске С у меня.

Ссылка на комментарий
Поделиться на других сайтах

11 час назад, Илларион сказал:

монтировал в винде яндекс диск

Неужели с помощью davfs2. Изучите параметры davfs и в особенности cache_size

Ссылка на комментарий
Поделиться на других сайтах

  • 3 weeks later...
8 часов назад, serguei00 сказал:

а можно как-нибудь обойти

Через `mount -o bind ....` любую папку RO можно сделать RW. Дальнейшее обсуждение выходит за рамки этого топика!

Ссылка на комментарий
Поделиться на других сайтах

  • 1 month later...

к сожалению столкнулся с проблемой, если подкиньте идеи, буду очень признателен.
Мой роутер Zyxel Keenetic Giga2 в него воткнул 2ТВ (nas сигейт), прошивка v2.08(AAFS.0)C2. раздел ext3

1) Установил Entware - установилось
2) модуль ядра - галку поставил
3) создал файлик /opt/etc/davfs2/yandex (через МС) 
=внутри него три строки:
vasayvsays
fakepass
y
=сохранил фаил
4) создал скрипт touch S99ya_disk потом chmod +x S99ya_disk 
5) внутри файла *S99ya_disk внес "#!/opt/bin/sh и т.д." сохранил
6) Запускаю ./S99ya_disk start вылетает:

Usage: ./S99ya_disk {start|stop|restart}
~ # ./S99ya_disk start
mount.davfs: Mounting failed.
Could not authenticate to server: rejected Basic challenge
mount: mounting https://webdav.yandex.ru on /opt/ya failed: No such device
~ # 

неудается смонтировать

Ссылка на комментарий
Поделиться на других сайтах

После установки проверить davfs2.conf и подправить при необходимости

 cache_dir       /opt/var/cache/davfs2 # system wide cache

файл secrets

/opt/home/yandex userххххх passwdхххххх

создать файл с любым именем в котором одна буква - dav.inp

y

/opt/etc/davfs2 # ls -l
drwxr-xr-x    3 root     root          1024 Jun  9 15:16 certs
-rw-r--r--    1 root     root             2 Nov 16  2012 dav.inp
-rw------    1 root     root          2295 Jul  7  2016 davfs2.conf
-rw-------    1 root     root            33 Jun  9 15:23 secrets
/opt/etc/davfs2 #

создать каталог куда монтировать например /opt/home/yandex

/opt/home # ls -l
...
drwxr-xr-x    3 root     root            72 Apr  5  2012 yandex
/opt/home # 

проверить на запуск

mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw < /opt/etc/davfs2/dav.inp

Скрытый текст

/opt/etc # mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw < /opt/etc/davfs2/dav.inp
mount.davfs: the server certificate is not trusted
  issuer:      Yandex Certification Authority, Yandex LLC, RU
  subject:     Russian Federation, Moscow, ITO, Yandex LLC, RU
  identity:    *.disk.yandex.net
  fingerprint: e1:a6:16:2d:40:хх:хх:хх:хх:хх:хх:хх:хх:хх:хх:хх:хх:хх:хх:da
You only should accept this certificate, if you can
verify the fingerprint! The server might be faked
or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] /opt/etc #

/opt/etc #  df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   13312     13312         0 100% /
/dev/root                13312     13312         0 100% /
tmpfs                    63112         0     63112   0% /dev
tmpfs                    63112       168     62944   0% /tmp
/dev/mtdblock/7            960       196       764  20% /storage
...

/dev/sda2               928987     39921    839505   5% /opt https://webdav.yandex.ru
                      10485756        20  10485736   0% /opt/home/yandex

/opt/etc # mount
...

/dev/sda2 on /opt type ext4 (rw,relatime,data=ordered)
https://webdav.yandex.ru on /opt/home/yandex type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=16384)
/opt/etc #

 

 

Изменено пользователем vasek00
Ссылка на комментарий
Поделиться на других сайтах

7 минут назад, vasek00 сказал:

создать файл с любым именем в котором одна буква - dav.inp

y

Апплет yes не годится?

yes | mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw

 

Ссылка на комментарий
Поделиться на других сайтах

9 минут назад, Александр Рыжов сказал:

Апплет yes не годится?


yes | mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw

 

в посте выше все работает и диск есть и служба весит

21534 nobody    7364 S    mount.davfs https://webdav.yandex.ru /opt/home/yandex

/opt/etc/davfs2 # cat dav.inp
y
/opt/etc/davfs2 # 

/opt/home/yandex # ls -l
-rw-r--r--    1 root     root         57450 Jun  9 15:17 davfs2_1.5.4-2_mipsel-3x.ipk
-rw-r--r--    1 root     root       4004779 May 29 12:36 iperf3cygwingui-3.0b4-03.zip
drwx------    2 root     root             0 Jun  9 15:24 lost+found
-rw-r--r--    1 root     root       5918723 Jun  1 15:15 syncthing-linux-mips-v0.14.29.tar.gz
-rw-r--r--    1 root     root       6066706 Jun  1 15:15 syncthing-windows-386-v0.14.29.zip
/opt/home/yandex # 

 

Изменено пользователем vasek00
Ссылка на комментарий
Поделиться на других сайтах

13 минуты назад, vasek00 сказал:

в посте выше все работает и диск есть и служба весит

«У меня всё работает» — плохой аргумент. Сами ведь понимаете, что dav.inp — это откровенный костыль, которому есть нормальная замена.

Ссылка на комментарий
Поделиться на других сайтах

16 минут назад, Александр Рыжов сказал:

«У меня всё работает» — плохой аргумент. Сами ведь понимаете, что dav.inp — это откровенный костыль, которому есть нормальная замена.

принято

/opt/var/run/mount.davfs # yes | mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw
mount.davfs: the server certificate is not trusted
  issuer:      Yandex Certification Authority, Yandex LLC, RU
  subject:     Russian Federation, Moscow, ITO, Yandex LLC, RU
  identity:    *.disk.yandex.net
  fingerprint: e1:a6:........:da
You only should accept this certificate, if you can
verify the fingerprint! The server might be faked
or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] yes: Broken pipe
/opt/var/run/mount.davfs # 
/opt/var/run/mount.davfs # df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   13312     13312         0 100% /
.....
/dev/sda2               928987     55688    823738   6% /opt
https://webdav.yandex.ru
                      10485756     15784  10469972   0% /opt/home/yandex
/opt/var/run/mount.davfs #

 

Ссылка на комментарий
Поделиться на других сайтах

Все сделал но, увы опять

~ # mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw < /opt/etc/davfs2/dav.inp
mount.davfs: Mounting failed.
Could not authenticate to server: rejected Basic challenge
mount: mounting https://webdav.yandex.ru on /opt/home/yandex failed: No such device


~ # yes | mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw
mount.davfs: Mounting failed.
Could not authenticate to server: rejected Basic challenge
mount: mounting https://webdav.yandex.ru on /opt/home/yandex failed: No such device

root@Keenetic_Giga:/opt/etc/davfs2# ls -l
drwxr-xr-x    3 root     root          4096 Jun  8 23:58 certs
-rw-r--r--    1 root     root             1 Jun  9 16:42 dav.inp
-rw-------    1 root     root          2311 Jun  9 16:40 davfs2.conf
-rw-------    1 root     root          2684 Jun  9 16:38 secrets

root@Keenetic_Giga:/opt/home# ls -l
-rwxr-xr-x    1 root     root          1565 Jun  9 10:17 S99ya_disk
drwxr-xr-x    2 root     root          4096 Jun  9 15:50 yandex

Изменено пользователем necfe
Ссылка на комментарий
Поделиться на других сайтах

32 минуты назад, vasek00 сказал:

 


or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] yes: Broken pipe

 

Фигово. Должно быть:

or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] ~ #

Какая прошивка/девайс? Проверил и в интерактивном сеансе на GIII с последней бетой и Entware-3x.

 

 

Ссылка на комментарий
Поделиться на других сайтах

Вообще можно включить сертификат в число доверенных и никаких вопросов и предупреждений больше не будет. Опуская промежуточные действия по поиску отсутствующего сертификата в цепочке:

$ wget -O - http://certificate.fyicenter.com/Download-Certificate.php?ID=329 > /opt/etc/davfs2/certs/Certum_Trusted_Network_CA.crt
$ echo 'servercert /opt/etc/davfs2/certs/Certum_Trusted_Network_CA.crt' >> /opt/etc/davfs2/davfs2.conf

Теперь не понадобится ни костыльный файл, ни апплет yes.

Ссылка на комментарий
Поделиться на других сайтах

15 часов назад, Александр Рыжов сказал:

Фигово. Должно быть:


or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] ~ #

Какая прошивка/девайс? Проверил и в интерактивном сеансе на GIII с последней бетой и Entware-3x.

 

 

KII на последней 209B с Entware3

Ссылка на комментарий
Поделиться на других сайтах

16 часов назад, necfe сказал:

Все сделал но, увы опять

~ # mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw < /opt/etc/davfs2/dav.inp
mount.davfs: Mounting failed.
Could not authenticate to server: rejected Basic challenge
mount: mounting https://webdav.yandex.ru on /opt/home/yandex failed: No such device


~ # yes | mount -t davfs https://webdav.yandex.ru /opt/home/yandex -o rw
mount.davfs: Mounting failed.
Could not authenticate to server: rejected Basic challenge
mount: mounting https://webdav.yandex.ru on /opt/home/yandex failed: No such device

root@Keenetic_Giga:/opt/etc/davfs2# ls -l
drwxr-xr-x    3 root     root          4096 Jun  8 23:58 certs
-rw-r--r--    1 root     root             1 Jun  9 16:42 dav.inp
-rw-------    1 root     root          2311 Jun  9 16:40 davfs2.conf
-rw-------    1 root     root          2684 Jun  9 16:38 secrets

root@Keenetic_Giga:/opt/home# ls -l
-rwxr-xr-x    1 root     root          1565 Jun  9 10:17 S99ya_disk
drwxr-xr-x    2 root     root          4096 Jun  9 15:50 yandex

И каталог монтирования конечно на месте?

Ссылка на комментарий
Поделиться на других сайтах

Device                  Start                End         Sectors        Size Type
/dev/sda1                  34          2074713       2074680        1013M Linux swap
/dev/sda2          2074714     1471836135    1469761422    700,9G Linux filesystem
/dev/sda3      1471836136    3907029133    2435192998        1,1T Microsoft basic data
хочу смонтировать на /dev/sda2

# mount -t davfs https://webdav.yandex.ru /dev/sda2/opt/ya/ 
mount.davfs: can't evaluate path of mount point (null)
mount: mounting https://webdav.yandex.ru on /dev/sda2/opt/ya/ failed: Not a directory

/etc # df -h
Filesystem                Size      Used    Available Use%                     Mounted on
rootfs                   10.1M     10.1M         0 100%                          /
/dev/root                10.1M     10.1M         0 100%                         /
tmpfs                   125.1M         0    125.1M   0%                         /dev
tmpfs                   125.1M     92.0K    125.0M   0%                     /tmp
/dev/mtdblock/7         960.0K    196.0K    764.0K  20%               /storage
/dev/sda1               997.1M    961.0M         0 100%                   /tmp/mnt/SWAP
/dev/sda2               688.9G     29.8M    653.8G   0%                 /tmp/mnt/OpenWRT
/dev/sda3                 1.1T     84.6G      1.1T   7%                     /tmp/mnt/Files
/dev/sda2               688.9G     29.8M    653.8G   0%                 /opt

Я не могу смонтировать =(

 

Изменено пользователем necfe
Ссылка на комментарий
Поделиться на других сайтах

В 11.06.2017 в 13:27, necfe сказал:

mount -t davfs https://webdav.yandex.ru /dev/sda2/opt/ya/ 

не-не-не!

mount -t davfs https://webdav.yandex.ru /opt/ya/ 
20 минут назад, necfe сказал:

есесено за ..

Если помогло, то переведите любую сумму на https://donate.podari-zhizn.ru/

Ссылка на комментарий
Поделиться на других сайтах

Только что, necfe сказал:

безусловно так тоже пробывал

Явно жалуется на корявость учётных данных:

Цитата

Could not authenticate to server: rejected Basic challenge

 

Ссылка на комментарий
Поделиться на других сайтах

Проблема действительно была в Яндексе,  необходимо зайти в настройки яндекс паспорт и выбрать "СОЗДАТЬ ПАРОЛЬ ПРИЛОЖЕНИЯ" та выбрать "Файлы Webdav", далее вылетит окошко с пассом, его и надо вводить. Мой тот что штатный почему-то не принимает...

Ссылка на комментарий
Поделиться на других сайтах

  • 1 year later...

Ребят, не пинайте не грамотного! В ручную подключаюсь к диску, а вот в автомате пока так и не понял как сделать, чтобы не вписывать имя и пароль и потом еще ответить yes.

Подскажите еще раз пожалуйста!

Просто если делать как написано в первом посте, то ошибка за ошибкой и не получается.

И еще вопрос: хочу это примонтированный раздел прицепить к разделу на сетевом хранилище (WD), делаю из WD, а там пишет - is not a valid block device.

В настройках роутера есть доступ к разделу и все такое. Хотя пробовал подцепить на бук раздел, так там тоже ругается. Может есть вариант принудительно расшарить отдельные папки руками?

Изменено пользователем el matador
Ссылка на комментарий
Поделиться на других сайтах

У меня все подмантировалось успешно, за исключением одного НО. Вот как я делал:

Сначала идет в настройки учетной записи в Яндексе и получаем там пароль приложения для WebDav, именно его и будет использовать

opkg install davfs2
touch S99ya_disk
chmod +x S99ya_disk
wget -O - http://certificate.fyicenter.com/Download-Certificate.php?ID=329 > /opt/etc/davfs2/certs/Certum_Trusted_Network_CA.crt
echo 'servercert /opt/etc/davfs2/certs/Certum_Trusted_Network_CA.crt' >> /opt/etc/davfs2/davfs2.conf
echo '/opt/home/yandex username password' >> /opt/etc/davfs2/secrets
chmod 0600 /opt/etc/davfs2/secrets
vi S99ya_disk

Тут опять же редактируем точку монтирования в /opt/home/yandex

Получается примерно вот так

#!/opt/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

chmod 644 /dev/urandom
chmod 644 /dev/random
chmod 644 /dev/ptmx
chmod 666 /dev/null

MOUNTPOINT=/opt/home/yandex

case "$1" in
   start)
       mkdir -p $MOUNTPOINT
       if [ -f /opt/var/run/mount.davfs/opt-home-yandex.pid ]; then
         rm /opt/var/run/mount.davfs/opt-home-yandex.pid
       fi
      mount -t davfs https://webdav.yandex.ru $MOUNTPOINT -o rw
       ;;
   stop)
       if ( (mount | grep -q yandex) ); then
           umount $MOUNTPOINT
       fi
       ;;
   restart)
       stop
       sleep 1
       start
       ;;
   *)
       echo "Usage: $0 {start|stop|restart}"
       ;;
esac

Запускаем, проверяем.

~ # ./S99ya_disk start
~ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   14080     14080         0 100% /
...
https://webdav.yandex.ru
                     264241148 127769492 136471656  48% /opt/home/yandex
~ # mount
rootfs on / type rootfs (rw)
...
https://webdav.yandex.ru on /opt/home/yandex type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=16384)

А вот теперь то самое НО.

На роутере я подключенный диск вижу прекрасно, могу ходить по папкам и прочее, но вот при просмотре через CIFS папка пустая. Почему?

Скрытый текст

image.png.8359924d2ec11cd95fbb75db16ad4065.png

  

Изменено пользователем ankar84
Ссылка на комментарий
Поделиться на других сайтах

23 минуты назад, ankar84 сказал:

Сначала идет в настройки учетной записи в Яндексе и получаем там пароль приложения для WebDav, именно его и будет использовать

Это только для тех, кто использует 2FA, верно?

Ссылка на комментарий
Поделиться на других сайтах

29 минут назад, ankar84 сказал:

На роутере я подключенный диск вижу прекрасно, могу ходить по папкам и прочее, но вот при просмотре через CIFS папка пустая. Почему?

Особенность fusefs - но можно поискать флаги монтирования.....

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, Александр Рыжов сказал:

Это только для тех, кто использует 2FA, верно?

Да, в справке сказано именно так, но лично я 2FA не использую и у меня отлично все подмонтировалось с паролем приложения. А для использующих 2FA это, видимо, вообще единственный обходной путь.

Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, zyxmon сказал:

Особенность fusefs - но можно поискать флаги монтирования

Очень жаль. В таком виде не смогу применить, скорее всего.

Хотя странно, ведь allow_other есть, но такое впечатление, что доступно монтирование только root (CIFS у меня под другим пользователем - из прошивки)

https://webdav.yandex.ru on /opt/home/yandex type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=16384)

Ссылка на комментарий
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу
×
×
  • Создать...