自动化需要用户输入的挂载操作

jot*_*ken 6 fstab mount webdav davfs2 16.04

我想在启动时在文件服务器上挂载一个目录。这是我的/etc/fstab条目:

# mount the fileserver
https://fsrv.company/ /mnt/fileserver davfs user,auto 0 0
Run Code Online (Sandbox Code Playgroud)

手动安装它mount /mnt/fileserver工作正常。但是,由于证书过时,这会发出提示,我总是必须回答是:

/sbin/mount.davfs: the server certificate does not match the server name
/sbin/mount.davfs: the server certificate is not trusted
[...]
Accept certificate for this session? [y,N] y
Run Code Online (Sandbox Code Playgroud)

启动 Ubuntu 时应安装此设备(由于auto选项)。但是,设备未安装,可能是因为需要输入。文件服务器的所有者不会更新其证书。

我怎样才能自动化这个过程,这样设备在启动时安装,答案总是y\n

编辑:我确实下载了证书并将其放置在.davfs2/certs/并编辑了.davfs2/davfs2.conf 中的条目(如下面@Oli 所提示),但交互式输入仍然存在。

小智 6

在我的例子中,我使用了上面Oli突出显示的代码,然后在 dav2fs 配置中使用了trust_server_cert选项。

当服务器的证书无法验证或什至无效时很有用,但您知道您可以信任此证书。

因此,编辑/etc/davfs2/davfs2.conf并添加如下所示的行:

trust_server_cert        /etc/davfs2/certs/my.selfsigned.cert.pem
Run Code Online (Sandbox Code Playgroud)

即使证书主机不匹配,这也允许我挂载自签名的 OwnCloud webdav。


Oli*_*Oli 5

解决信任问题并安装证书不是更容易吗?

  1. 下载证书(感谢SuperUser上的elec3647

    openssl s_client -connect HOSTNAME:443 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > certificate.pem
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将证书复制到/etc/davfs2/certs/

    sudo cp certificate.pem /etc/davfs2/certs/
    
    Run Code Online (Sandbox Code Playgroud)

那应该直接解决问题。