以非root用户身份通过​​密码提示进行Samba安装


17

我想挂载受密码保护的SMB共享(由Windows计算机提供)。共享受用户名和密码保护,我可能没有在文件中写入密码,我想在安装时提示输入密码。

我需要一种即使在客户端计算机上的用户没有任何管理特权时也能使用的解决方案,因此,用于挂载共享的任何方法都不得允许他获得root权限。初始安装可以root用户身份进行。用户必须能够指定任意服务器名称。我的迫切需求是使用Ubuntu 12.04,但适用范围更广的解决方案更好。

客户端没有头,所以我正在寻找命令行工具。

我试过的

  • mount.cifs:尽管可以将其设置为setuid root,但其作者并不认为它是安全的。在其下运行sudo具有相同的问题。
  • smbnetfsfusesmb:我无法说服他们两个都提示我输入密码。
  • Nautilus和gvfs:gvfs-mount smb://servername/sharename失败Error mounting location: volume doesn't implement mount

如何以非root用户身份从命令行通过密码提示挂接Samba共享?


1
首席开发人员之一似乎已经放松了对setuid问题的立场。摘录:“该代码已经过大量修改,应该比以前安全得多。它现在进行特权分离,这样,大部分挂载过程将以非特权用户的身份执行,并且如果链接到正确的库,则会修剪功能。至此,我要说的足够安全了,我们不再需要限制它被安装为setuid root。来源:lists.samba.org/archive/samba/2010-April/154935.html想通了,我应该指出这一点。
蒂姆(Tim)

Answers:


20

“安装位置错误:卷未实现安装”显然翻译为“我需要D-Bus,但它不可用”。(感谢venturax的大师同事对这一信息。)在一个SSH会话,我可以使用gvfs-mount规定,dbus-daemon首次启动和环境变量DBUS_SESSION_BUS_ADDRESS被设置。

export $(dbus-launch)
gvfs-mount smb://workgroupname\;username@hostname/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'

gvfs-mount和其他GVFS实用程序都必须与同一个D-Bus会话通信。因此,如果您使用多个SSH会话或在登录会话之间使用挂载,则必须:

  • 最迟在第一次需要时启动D-Bus;
  • 只要有已安装的GVFS文件系统,请注意不要让D-Bus以会话结尾;
  • 如果有,请在登录时重用现有的D-Bus会话。

为此,请参阅在登录会话之间重用D-Bus会话


1
这也适用gio mount于最新的ubuntu版本。
jnas

1

SMBNetFS默认情况下使用Gnome密钥。在Nautilus中浏览Samba共享时输入并保存在Gnome密钥中的任何密码都应自动使用。因此,如果可以将密码存储在Gnome密钥中是可以的,则SMBNetFS更为方便。它会自动安装整个网络邻居。此信息来自示例SMBNetFS配置文件,但是由于我不使用Gnome,因此我尚未对其进行测试。

关于不带X11的Gnome密钥环的使用,请参见不带X的gnome-keyring-daemon的使用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.