Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: davfs2 перестал работать  (Прочитано 605 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Akalemnos3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
davfs2 перестал работать
« : 16 Ноября 2019, 23:38:45 »
Привет, All!

Есть у меня рабочая станция под Ubuntu 18.04.3 LTS. И есть удалённый сервер, на котором поднят nginx с настроенным WebDAV. (Сервер под FreeBSD, но это вряд ли важно.) На рабочей станции я настроил монтирование webdav-шары в соответствии с этой инструкцией. И всё заработало просто-таки на ура.

А на днях я обнаружил, что перестало работать :( Выглядело это как ошибка монтирования:
$ sudo mount -t davfs https://site.domain.com:8888 /mnt/RemoteStorage/
Please enter the username to authenticate with server
https://site.domain.com:8888 or hit enter for none.
  Username: myuser
Please enter the password to authenticate user myuser with server
https://site.domain.com:8888 or hit enter for none.
  Password: 
/sbin/mount.davfs: mounting failed; the server does not support WebDAV

При этом на стороне сервера всё выглядело довольно обыденно:
123.45.67.89 - - [16/Nov/2019:23:29:53 +0300] "OPTIONS / HTTP/1.1" 401 179 "-" "davfs2/1.5.4 neon/0.30.2" "-"
123.45.67.89 - myuser [16/Nov/2019:23:29:53 +0300] "OPTIONS / HTTP/1.1" 200 0 "-" "davfs2/1.5.4 neon/0.30.2" "-"
То есть, сперва клиент ткнулся без авторизации, получил отлуп, затем при повторном запросе с авторизацией всё захорошело. Поведение как будто штатное.

Я включил debug для davfs2 и увидел в логах следующее (цитирую с места, когда клиент получил 401):
...
Nov 16 21:38:36 Station2 mount.davfs: auth: Got challenge (code 401).
Nov 16 21:38:36 Station2 mount.davfs: auth: Got 'Basic' challenge.
Nov 16 21:38:36 Station2 mount.davfs: auth: Trying Basic challenge...
Nov 16 21:38:36 Station2 mount.davfs: auth: Accepted Basic challenge.
Nov 16 21:38:36 Station2 mount.davfs: Running pre_send hooks
Nov 16 21:38:36 Station2 mount.davfs: auth: Sending 'Basic' response.
Nov 16 21:38:36 Station2 mount.davfs: Sending request headers:#012OPTIONS / HTTP/1.1#015#012User-Agent: davfs2/1.5.4 neon/0.30.2#015#012Keep-Alive: #015#012Connection: TE, Keep-Alive#015#012TE: trailers#015#012Host: site.domain.com:8888#015#012Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Nov 16 21:38:36 Station2 mount.davfs: Sending request-line and headers:
Nov 16 21:38:36 Station2 mount.davfs: Request sent; retry is 1.
Nov 16 21:38:36 Station2 mount.davfs: [status-line] < HTTP/1.1 200 OK
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Server: nginx/1.16.1
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [server], Value: [nginx/1.16.1]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Date: Sat, 16 Nov 2019 18:38:36 GMT
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [date], Value: [Sat, 16 Nov 2019 18:38:36 GMT]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Content-Length: 0
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [content-length], Value: [0]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Connection: keep-alive
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [connection], Value: [keep-alive]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] DAV: 2
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [dav], Value: [2]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Allow: GET,HEAD,PUT,DELETE,MKCOL,COPY,MOVE,PROPFIND,OPTIONS,LOCK,UNLOCK
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [allow], Value: [GET,HEAD,PUT,DELETE,MKCOL,COPY,MOVE,PROPFIND,OPTIONS,LOCK,UNLOCK]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Expires: Thu, 31 Dec 2037 23:55:55 GMT
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [expires], Value: [Thu, 31 Dec 2037 23:55:55 GMT]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Cache-Control: max-age=315360000
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [cache-control], Value: [max-age=315360000]
Nov 16 21:38:36 Station2 mount.davfs: [hdr] Allow: OPTIONS, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND
Nov 16 21:38:36 Station2 mount.davfs: Header Name: [allow], Value: [OPTIONS, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND]
Nov 16 21:38:36 Station2 mount.davfs: [hdr]
Nov 16 21:38:36 Station2 mount.davfs: End of headers.
Nov 16 21:38:36 Station2 mount.davfs: Running post_headers hooks
Nov 16 21:38:36 Station2 mount.davfs: Running post_send hooks
Nov 16 21:38:36 Station2 mount.davfs: ah_post_send (#1), code is 200 (want 401), WWW-Authenticate is (none)
Nov 16 21:38:36 Station2 mount.davfs: Request ends, status 200 class 2xx, error line:#012200 OK
Nov 16 21:38:36 Station2 mount.davfs: Running destroy hooks.
Nov 16 21:38:36 Station2 mount.davfs: Request ends.

То есть, получается, что клиент повторил запрос с данными авторизации, при этом почему-то "забыл" об этом и, получив ответ 200, счёл его неверным, потому что должен был якобы прилететь 401.

Что с ним не так?

P.S. У меня установлена davfs2 версии 1.5.4-2. На днях проводил обновление программ штатными средствами Убунты, но этот пакет не обновлялся, я смотрел в истории.

P.P.S. Есть у меня WebDAV-клиенты на Андроиде и Винде. Они нормально заходят на шару.

 

Страница сгенерирована за 0.092 секунд. Запросов: 26.