使用 gio 挂载 smb 共享时如何指定密码?

Tyr*_*ras 8 permissions mount cifs

我正在开发一个需要自动挂载 smb/cifs 共享的软件。

问题是必须使用用户的登录名和密码安装共享,而且,AFAIK 以及我完全不知道的原因,看起来 gio 没有在命令行中指定密码的选项,只有用户。如果用户需要密码,它会以交互方式要求密码。虽然这适用于从终端调用 gio 的人,但对于开发......这是一种痛苦。

我已经试过打电话

gio mount smb://<user>:<password>@<server>/<share>/
Run Code Online (Sandbox Code Playgroud)

但它只是忽略密码并在终端中要求它。(糟糕的)文档没有显示任何指定密码的方法。等待密码提示并“模拟”输入是设置密码的唯一方法吗?

使用 mount -t cifs 不是一个选项,因为它需要 root/sudo,而且我正在使用的软件不应该需要提升的权限。

Mor*_*us1 7

在您的主目录中创建一个文件。例如在/home/morbius/.servercreds

在该文件中输入您的凭据。您必须指定用户名、工作组和密码 - 每行一个

<username>
<workgroup>
<password>
Run Code Online (Sandbox Code Playgroud)

然后你的 gio 命令看起来像这样:

gio mount smb://<server>/<share> < /home/morbius/.servercreds
Run Code Online (Sandbox Code Playgroud)

  • 只是澄清一下:这非常hacky,因为它只是模拟用户输入这些详细信息并在它们之间按 Enter 键。如果命令询问新问题和/或以不同的顺序,则会出现问题。 (3认同)