任何autofs专家? 如何让autofs和webdav一起工作?

首先让我说,这是我在AskUbuntu发布的一个问题的转贴。 如果这是违反规则,那么请删除这个。 说实话,在进一步思考这个话题之后,我意识到,由于autofs在各种发行版本上基本上是一样的,所以这更像是一个autofs / linux问题,而不是Ubuntu特有的问题。 当然,这是我的理由,因为我也希望得到更多的曝光这个问题:它似乎像autofs和WebDAV是一个相当不常见的组合,所以我有更多的机会find别人谁已经成功地做到了我在这个更一般的论坛尝试。


我使用占位符来表示真正的服务器名称和文件夹,但是,我尽量使它们成为真实姓名的代表,因此请注意我的大小写和标点符号,以防与我的问题有任何关系。

我正在运行Ubuntu 16.04
我已经安装了autofsdavfs2

以下命令成功挂载:

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

它问我一个用户名和密码,这是[email protected]myypassword ,然后导致成功的挂载。

这告诉我几件事情:

  1. 我的WebDAV服务器正在正常工作和configuration。
  2. HTTPS工作正常。
  3. 我的凭据成功validation。

所以现在我试图让这个工作与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 /秘密

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

有了这个设置,如果我尝试浏览到/Servername.mount/storage-folder ,我得到一个No such file or directory error

现在我想95%的确定,我的问题是语法错误或validation错误。 Web上没有很多的基于WebDAV的autofs实现的例子,其中一些显示了矛盾的语法。 尽pipe如此,我尝试了所有我能想到的。

我认为这可能是冒号在auto.Servername.mount文件是auto.Servername.mountparsing,所以我已经尝试了所有以下组合:

 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我的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 

没有任何工作

所以我觉得我错过了一些小而重要的语法或configuration在这里。 我绝望地来找你。 任何帮助,将不胜感激!

我得到了它的工作。

作为参考,这里是一个工作与WebDAV安装的autofs

安装prereqs

 $ 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 /秘密

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

我如何解决它:

我有几个问题。

  1. 我在google的结果第四页find了一个关于auto.Servername.mount的parsing问题的“ 权威指南”:[url] https://freetz.org/wiki/packages/autofs%5B/url%5D所以你确实需要使用反斜线来逃避其他冒号。
  2. 我不得不打开详细的日志logging来find我的第二个问题(这是令人尴尬的坏)。 打开/etc/autofs.conf并find表示logging = none的行 。 取消注释并将其更改为冗长 。 重新加载autofs: $ sudo /etc/init.d/autofs reload ,然后检查/ var / log / syslog中的错误(日志文件位置和名称将因发行版而异)。
  3. 系统日志告诉我关键的“存储文件夹”没有在地图源中find。 现在公平地说,我的存储文件夹名称有点长和复杂。 但我已经检查过了,检查了很多次,我错过了,实际上是一个字母拼写错了。 所以这是我的第二个问题,在/etc/auto.Servername.mount我实际上已经写了类似storage-foldr而不是storage-folder ,所以显然当我试图访问/Servername.mount/storage-folder时,它不是find在configuration文件中的任何引用。
  4. 我解决这个问题后,详细的日志logging给了我下一个领导,因为它现在显示错误无法validation到服务器:被拒绝的基本挑战 。 所以这告诉我,我现在正在authentication错误。 我打开/ etc / davfs2 / secrets并开始拨动 ,这次我实际上是RTFM,因为答案就在秘密文件中包含的文档中。 它确切地说明了哪些字符需要用反斜杠进行转义,结果是我的用户名中的@不是问题,但是我的密码确实存在一个有问题的字符! 事实certificate,把密码放在引号中是解决问题的另一种方法,我把用户名@域放在引号中,只是为了好的措施。

一切正常!