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

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

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

问题是必须使用用户的登录名和密码来挂载共享,而且据我所知,出于我完全不知道的原因,gio 似乎没有在命令行中指定密码的选项,只有用户才可以。如果用户需要密码,它会以交互方式询问。虽然这对从终端调用 gio 的人来说是可行的,但对于开发人员来说……这很麻烦。

我已经尝试拨打

gio mount smb://<user>:<password>@<server>/<share>/

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

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

答案1

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

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

<username>
<workgroup>
<password>

那么你的 gio 命令将如下所示:

gio mount smb://<server>/<share> < /home/morbius/.servercreds

答案2

为了避免创建新文件,您可以通过管道将输入导入gio

echo -e "USERNAME\nWORKGROUP\nPASSWORD\n" | gio mount smb://<server>/<share>

echo -e告诉echo允许特殊字符,并且\n每个字段之后就像按下回车键一样。

相关内容