autofs и WebDAV — как заставить их работать вместе?

autofs и WebDAV — как заставить их работать вместе?

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

я бегуУбунту 16.04.
Я установилавтофсиdavfs2.

Следующая команда успешно монтирует:

mount -t davfs https://servername.mydomain.com:3333/Shared.Folder /testmount

Он запрашивает у меня имя пользователя и пароль, которые являются [email protected]и , myypasswordа затем приводит к успешному монтированию.

Это говорит мне о нескольких вещах:

  1. Мой сервер WebDAV работает и настроен правильно.
  2. HTTPS работает отлично.
  3. Мои учетные данные успешно аутентифицированы.

Так что теперь я пытаюсь заставить это работать савтофс.

Вот мои файлы:

/etc/auto.master

/Server.mount /etc/auto.Servername.mount

/etc/auto.Имя_сервера.mount

storage-folder -fstype=davfs,ro :https://servername.mydomain.com:3333/Shared.Folder

/etc/davfs2/секреты

https://servername.mydomain.com:3333/Shared.Folder [email protected] mypassword

При такой настройке, если я попытаюсь перейти на /Servername.mount/storage-folder, я получу No such file or directory error.

Теперь я на 95% уверен, что моя проблема — это ошибка синтаксиса или ошибка аутентификации. Естьне многопримеров, которые можно найти в сети для реализаций autofs на основе WebDAV, и некоторые из них демонстрируют конфликтующий синтаксис. Тем не менее, я перепробовал все, что смог придумать.

Я думаю, что двоеточие в файле, скорее всего, auto.Servername.mountпортит синтаксический анализ, поэтому я перепробовал все следующие комбинации:

storage-folder -fstype=davfs,ro https://servername.mydomain.com:3333/Shared.Folder
storage-folder -fstype=davfs,ro https\://servername.mydomain.com\:3333/Shared.Folder
storage-folder -fstype=davfs,ro :https\://servername.mydomain.com\:3333/Shared.Folder
storage-folder -fstype=davfs,ro https\://servername.mydomain.com\:3333:/Shared.Folder

Если это не является причиной проблемы, то я думаю, что это может быть связано с файлом secrets. Поэтому я также попробовал это для моего secrets:

/Servername.mount/storage-folder [email protected] mypassword

Поскольку я привык использовать файл учетных данных с монтированием autofs на основе cifs, я также попробовал, просто ради интереса, в своем auto.Servername.mountфайле:

storage-folder -fstype=davfs,ro,credentials=/etc/credentials.Servername.mount https://servername.mydomain.com:3333/Shared.Folder

Где credentials.Servername.mountбыло просто:

[email protected]  
Password=mypassword  

Я также попробовал с 'credentials.Servername.mount' как:

https://servername.mydomain.com:3333/Shared.Folder [email protected] mypassword

Ничего не работает.

Так что я чувствую, что мне не хватает какой-то маленькой, но важной части синтаксиса или конфигурации. Я пришел к вам в отчаянии. Любая помощь будет оценена по достоинству!

решение1

У меня всё заработало.

Для справки, вот рабочийавтофссWebDAVнастраивать

Установить предварительные требования

$ sudo apt-get install autofs
$ sudo apt-get install davfs2

/etc/auto.master

/Server.mount /etc/auto.Servername.mount

/etc/auto.Имя_сервера.mount

storage-folder -fstype=davfs,ro :https\://servername.mydomain.com\:3333/Shared.Folder

Примечание: измените «ro» [только чтение] на «rw» [чтение и запись] в зависимости от ваших потребностей.

/etc/davfs2/секреты

/Server.mount/storage-folder "[email protected]" "mypassword"

Как я это исправил:

У меня было несколько проблем.

  1. Я нашел «полное» руководство по разбору вопроса дляauto.Имя_сервера.mountна четвертой странице результатов поиска Google:здесь. Поэтому вам действительно нужно экранировать другие двоеточия с помощью обратной косой черты.
  2. Мне пришлось включить подробное ведение журнала, чтобы найти вторую проблему (которая была досадно плохой). Открыть/etc/autofs.confи найдите строку, в которой говорится:регистрация = нет. Раскомментируйте его и изменитениктокподробный. Перезагрузить autofs:$ sudo /etc/init.d/autofs перезагрузкаа затем проверьте наличие ошибок в/var/log/syslog(расположение и имя файла журнала могут различаться в зависимости от дистрибутива).
  3. системный журналговорил мнеключ "storage-folder" не найден в источнике(ах) карты. Теперь, если быть честным, мойпапка-хранилищеИмя довольно длинное и сложное. Но я проверял и проверял его много раз, и снова и снова я не замечал, что оно на самом деле было написано с ошибкой в ​​одну букву. Так что это была моя вторая проблема, в/etc/auto.Имя_сервера.mountНа самом деле я написал что-то вродепапка-хранилищевместопапка-хранилище, поэтому очевидно, что когда я пытался получить доступ/Servername.mount/storage-folderникаких ссылок на это в файлах конфигурации не обнаружено.
  4. После того, как я это исправил, подробное ведение журнала дало мне следующую зацепку, поскольку теперь оно отображало ошибкуНе удалось аутентифицироваться на сервере: отклонен базовый вызов. Так что это сказало мне, что теперь я перешел к ошибке аутентификации. Я открыл/etc/davfs2/секретыи начал копаться, и на этот раз я действительно ответил RTFM, потому что ответы были прямо там, в документации, содержащейся всекретыфайл. В нем точно указано, какие символы нужно экранировать с помощью обратной косой черты, и оказывается, что проблема была не в @ в моем имени пользователя, а в моем пароле был проблемный символ! Оказывается, что заключение пароля в кавычки — это альтернативный и более простой способ обойти проблему, и я также заключил имя пользователя@домен в кавычки просто для пущей убедительности.

Теперь все работает!

Связанный контент