autofs と WebDAV - これらを連携させるにはどうすればよいでしょうか?

autofs と WebDAV - これらを連携させるにはどうすればよいでしょうか?

実際のサーバー名とフォルダーにはプレースホルダーを使用していますが、実際の名前をできるだけ正確に表すように努めています。そのため、大文字と小文字の区別や句読点が問題に関係しているかどうかに注意してください。

走っていますウブントゥ 16.04インストールし
ましたオートそしてダフス2

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

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

ユーザー名とパスワードの入力を求められます。入力する[email protected]myypasswordマウントが成功します。

このことからいくつかのことがわかります。

  1. WebDAV サーバーは正常に動作しており、正しく構成されています。
  2. HTTPSは正常に動作します。
  3. 資格情報が正常に認証されました。

だから今、これを機能させようとしているオート

私のファイルは次のとおりです:

オートマスター

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

/etc/auto.サーバー名.マウント

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%確信しています。あまりない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 [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

何も機能しません。

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

答え1

動作しました。

参考までに、ここに作業中のオートウェブDAV設定

前提条件をインストールする

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

オートマスター

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

/etc/auto.サーバー名.マウント

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.サーバー名.マウントGoogle検索結果の4ページ目:ここしたがって、バックスラッシュを使用して他のコロンをエスケープする必要があります。
  2. 2番目の問題(恥ずかしいほどひどい問題)を見つけるために、詳細なログ記録をオンにする必要がありました。開く設定ファイルそして、次の行を見つけてくださいログ記録 = なしコメントを外して変更するなし冗長. autofs をリロードします:$ sudo /etc/init.d/autofs をリロードするそしてエラーをチェックするログファイル(ログ ファイルの場所と名前はディストリビューションによって異なります)。
  3. シスログ私に言っていたキー「storage-folder」がマップ ソース内に見つかりません。 公平に言えば、私のストレージフォルダ名前はやや長くて複雑です。しかし、何度も何度も確認しましたが、実際には1文字のスペルミスであることに気づきませんでした。これが2番目の問題でした。/etc/auto.サーバー名.マウント私は実際に次のように書いていましたストレージフォルダの代わりにストレージフォルダ明らかに私がアクセスしようとしていたとき/サーバー名.マウント/ストレージフォルダ設定ファイル内にその参照が見つかりませんでした。
  4. これを修正した後、詳細ログで次の手がかりが得られました。エラーが表示されていたのです。サーバーに認証できませんでした: 基本チャレンジが拒否されましたそれで、認証エラーになったことがわかりました。/etc/davfs2/シークレットそして、いろいろ調べてみたところ、今回は実際にRTFMしました。答えは、秘密ファイル。バックスラッシュでエスケープする必要がある文字が正確に記述されており、ユーザー名の @ は問題ではなかったが、パスワードに問題のある文字があったことが判明しました。パスワードを引用符で囲むのが、問題を回避する別の簡単な方法であることが判明し、念のためユーザー名@ドメインも引用符で囲みました。

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

関連情報