Jump to content

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


Recommended Posts

Эта тема основана на темах 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

Link to comment
Share on other sites

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

Чтобы каждый раз не вводить логин и пароль, создадим файл /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`). Это добавит паузу перед монтированием. Величину паузы подберите экспериментально.

  • Thanks 2
  • Upvote 1
Link to comment
Share on other sites

  • 4 months later...

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

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

Link to comment
Share on other sites

  • 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 монтроваться не будет .... 

Edited by Dorik1972
  • Thanks 2
Link to comment
Share on other sites

  • 4 months later...

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

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

Link to comment
Share on other sites

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

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

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

  • Thanks 1
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

  • 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
~ # 

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

Link to comment
Share on other sites

После установки проверить 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 #

 

 

Edited by vasek00
  • Thanks 1
Link to comment
Share on other sites

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 # 

 

Edited by vasek00
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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 #

 

  • Thanks 1
Link to comment
Share on other sites

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

~ # 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

Edited by necfe
Link to comment
Share on other sites

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.

 

 

Link to comment
Share on other sites

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

$ 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.

  • Thanks 1
Link to comment
Share on other sites

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

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


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

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

 

 

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

 

Edited by necfe
Link to comment
Share on other sites

В 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/

Link to comment
Share on other sites

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

  • Thanks 1
Link to comment
Share on other sites

  • 1 year later...

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

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

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

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

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

Edited by el matador
Link to comment
Share on other sites

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

Сначала идет в настройки учетной записи в Яндексе и получаем там пароль приложения для 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

  

Edited by ankar84
  • Thanks 1
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...