Authentication

任何autofs專家?如何讓 autofs 和 webdav 協同工作?

  • September 6, 2016

首先讓我說這是我在 AskUbuntu 中發布的一個問題的轉貼。如果這違反了規則,那麼請刪除它。老實說,在進一步考慮該主題後,我意識到由於 autofs 在各種發行版中的工作原理基本相同,因此這更像是一個 autofs/linux 問題,而不是特定於 Ubuntu 的問題。當然,這是我的理由,因為我也希望獲得更多關於這個問題的曝光:autofs 和 WebDAV 似乎是一個相當不常見的組合,所以我更有機會找到其他成功完成它的人我嘗試在這個更通用的論壇中。


我正在為真實的伺服器名稱和文件夾使用佔位符,但是,我已嘗試使它們盡可能代表真實名稱,因此請注意我的大寫和標點符號,以防與我的問題有關。

我正在執行Ubuntu 16.04

我已經安裝了autofsdavfs2

以下命令成功掛載:

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

它要求我輸入使用者名和密碼,username@mydomain.com然後myypassword是成功掛載。

這告訴了我幾件事:

  1. 我的 WebDAV 伺服器工作正常且配置正確。
  2. HTTPS 工作正常。
  3. 我的憑據已成功驗證。

所以現在我正試圖讓它與autofs一起工作。

這是我的文件:

/etc/auto.master

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

/etc/auto.Servername.mount

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

/etc/davfs2/secrets

https://servername.mydomain.com:3333/Shared.Folder username@domain.com mypassword

使用此設置,如果我嘗試瀏覽到/Servername.mount/storage-folder,我會得到一個No such file or directory error.

現在我 95% 確定我的問題是語法錯誤或身份驗證錯誤。對於基於 WebDAV 的 autofs 實現,在 Web 上找不到*很多範例,其中一些範例顯示了衝突的語法。*儘管如此,我已經嘗試了我能想到的一切。

我認為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 username@domain.com mypassword

由於我習慣於將憑據文件與基於 cifs 的 autofs 掛載一起使用,因此我也嘗試在我的auto.Servername.mount文件中進行嘗試,只是為了好玩:

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

簡單credentials.Servername.mount地說:

Username=username@mydomain.com  
Password=mypassword  

我還嘗試使用“credentials.Servername.mount”作為:

https://servername.mydomain.com:3333/Shared.Folder username@domain.com mypassword

沒有任何效果。

所以我覺得我在這裡遺漏了一些小而重要的語法或配置。我絕望地來到你身邊。任何幫助,將不勝感激!

我讓它工作了。

作為參考,這裡是一個帶有WebDAV設置的工作autofs

安裝先決條件

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

/etc/auto.master

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

/etc/auto.Servername.mount

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

注:改“ro”

$$ read only $$到“rw”$$ read-write $$取決於你的需要。 /etc/davfs2/secrets

/Server.mount/storage-folder "username@domain.com" "mypassword"

我如何修復它:

我有幾個問題。

  1. 我在Google結果的第四頁找到了auto.Servername.mount解析問題的“權威”指南:$$ url $$https://freetz.org/wiki/packages/autofs$$ /url $$所以你確實需要使用反斜杠來轉義其他冒號。
  2. 我不得不打開詳細日誌記錄來找到我的第二個問題(這是非常糟糕的)。打開*/etc/autofs.conf並找到顯示logging = none的行。取消註釋並將none更改為verbose*。重新載入 autofs :$ sudo /etc/init.d/autofs reload然後檢查*/var/log/syslog*中的錯誤(日誌文件位置和名稱因發行版而異)。
  3. syslog告訴我在地圖源中找不到關鍵的“儲存文件夾”。 現在公平地說,我的儲存文件夾名稱有點長且複雜。但是我檢查了它,檢查了很多次,我一次又一次地錯過了它實際上是被一個字母拼錯了。所以這是我的第二個問題,在*/etc/auto.Servername.mount我實際上寫了類似storage-foldr而不是storage-folder*,所以很明顯,當我試圖訪問*/Servername.mount/storage-folder*它不是在配置文件中找到對它的任何引用。
  4. 修復此問題後,詳細日誌記錄給了我下一個線索,因為它現在顯示錯誤Could not authenticate to server: denied Basic challenge。所以這告訴我我現在遇到了身份驗證錯誤。我打開*/etc/davfs2/secrets並開始四處尋找,這次我實際上是 RTFM,因為答案就在機密*文件中包含的文件中。它準確地說明了哪些字元需要用反斜杠進行轉義,結果證明我的使用者名中的 @ 不是問題,但我的密碼中確實有一個有問題的字元!事實證明,將密碼放在引號中是解決問題的另一種更簡單的方法,我也將 username@domain 放在引號中只是為了更好地衡量。

現在一切正常!

引用自:https://serverfault.com/questions/801176