web-dev-qa-db-ja.com

autofsとWebDAV-連携させる方法

私は実際のサーバー名とフォルダーにプレースホルダーを使用していますが、実際の名前をできる限り代表するようにしていますので、問題に関係がある場合に備えて大文字と句読点に注意してください。

buntu 16.04を実行しています。
autofsおよびdavfs2をインストールしました。

次のコマンドは正常にマウントされます。

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

[email protected]および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 [email protected] mypassword

この設定で、/Servername.mount/storage-folderを参照しようとすると、No such file or directory errorが表示されます。

今では、問題が構文エラーまたは認証エラーであることを95%確信しています。 autofsのWebDAVベースの実装については、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 [email protected] 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は単に:

[email protected]  
Password=mypassword  

また、「credentials.Servername.mount」を次のように試しました:

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

何も動作しません。

そのため、ここでは、小さいながらも重要な構文または構成の一部を見逃しているように感じます。私はあなたに必死に来ます。助けていただければ幸いです!

2
Daniel

うまくいきました。

参考のために、こちらはautofsWebDAVセットアップ

前提条件のインストール

$ 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」[読み取り専用]を[rw] [読み取り-書き込み]に変更します。

/ etc/davfs2/secrets

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

修正方法:

いくつかの問題がありました。

  1. Googleの結果の4ページ目にauto.Servername.mountの解析に関する質問の「決定的な」ガイドを見つけました: here 。したがって、バックスラッシュを使用して他のコロンをエスケープする必要があります。
  2. 2番目の問題(恥ずかしいほど悪い)を見つけるために、詳細なログを有効にする必要がありました。 / etc/autofs.confを開き、logging = noneと書かれた行を見つけます。コメントを外してnoneverboseに変更します。 autofsをリロードします:$ Sudo /etc/init.d/autofs reload/ var/log/syslogのエラーを確認します(ログファイルの場所と名前はディストリビューションによって異なります)。
  3. syslogが教えてくれましたマップソースにキー "storage-folder"が見つかりませんでした。公平に言えば、私のstorage-folder nameやや長く複雑です。しかし、私はそれを何度も何度も確認し、何度も何度も確認していましたが、実際には1通の文字でつづりが間違っていることを忘れていました。それが/ etc/auto.Servername.mountの私の2番目の問題でした。実際にstorage-folderの代わりにstorage-foldrのように書きました。 =、だから明らかにアクセスしようとしたときに/ Servername.mount/storage-folder構成ファイルでそれへの参照が見つかりませんでした。
  4. これを修正した後、詳細ログがエラーを表示していたため、次のリードが得られましたサーバーに対して認証できませんでした:基本チャレンジを拒否しました。そのため、これで認証エラーが発生したことがわかりました。 / etc/davfs2/secretsを開き、いじくり回し始めましたが、今回は実際にRTFMに答えましたsecretsファイル。バックスラッシュでエスケープする必要のある文字を正確に記述し、ユーザー名の@は問題ではないことがわかりましたが、パスワードに問題のある文字がありました!パスワードを引用符で囲むことは、問題を回避するための別の簡単な方法であることがわかりました。また、適切な手段として、username @ domainも引用符で囲みます。

すべてが動作するようになりました!

3
Daniel