使用 fstab 和 .smbnetfs.conf 映射 smbnetfs 网络驱动器

使用 fstab 和 .smbnetfs.conf 映射 smbnetfs 网络驱动器

我希望用户能够smbnetfs在系统启动时使用网络映射,而不必smbnetfs /media/network每次都输入,因此我使用了这个条目/etc/fstab

smbnetfs /media/network fuse rw,users,noauto,allow_other 0 0

并且它可以工作,映射就在那里,当我使用任何文件管理器单击它时它就会挂载,但问题是它会在 处查找配置文件/root/.smb/smbnetfs.conf,并且用户将无法使用自己的凭据访问 Samba 共享。

我如何知道smbnetfs用户配置文件的正确位置?我不想更改该/root/.smb/smbnetfs.conf文件,因为有不同的用户需要映射此共享。

答案1

在 smbnetfs 手册页的文件部分中,它显示:

请创建配置目录 ~/.smb。此目录应至少包含两个文件:smb.conf 和 smbnetfs.conf。您可以从 /etc/samba 目录复制 smb.conf。您可以在 /etc 目录中找到 smbnetfs.conf 的示例。

如果该功能如广告所说有效,那么您应该能够绕过那里的根配置文件。

答案2

实际上,smbnetfs 上的文档指出,它会为发出 mount 命令的用户读取 ${HOME}/.smb,并且维马苏凯托通过 fstab 进行挂载,该用户将成为 root。

但是有一个解决方案:In/root/.smb/smbnetfs.conf是一个字符串:

#read auth data from ~/.smb/smbnetfs.auth
include                    "smbnetfs.auth"

如果我没记错的话,默认情况下应该将其注释掉。如果smbnetfs.auth没有提供路径,如上例所示,smbnet fs 将在中查找它~/.smb/。因此,您可以将它放置smbnetfs.auth在文件系统的任何位置,并具有任何权限,以便为用户提供编辑它的方法。我建议维马苏凯托取消注释此内容并创建一个/root/.smb/smbnetfs.auth具有流动内容的文件:

auth USER_NAME "USER_PASSWORD"
auth WORKGROUP USER_NAME "USER_PASSWORD"
auth COMPUTER_NAME USER_NAME "USER_PASSWORD"
auth COMPUTER_NAME/SHARE_NAME USER_NAME "USER_PASSWORD"

第一行将指示 smbnetfs 如何处理所有未明确提及的计算机。第二行将指示 smbnetfs 如何处理具有该名称的工作组和/或域中的所有计算机。第三行将提供特定计算机的凭据,第四行用于特定计算机上的共享。所有字符串都应以单词开头(auth表示凭据)或以开头#(表示注释)。所有参数都可以用 括起来"以屏蔽特殊符号,方法与"USER_PASSWORD"上例相同。参数USER_NAME可以以域名或工作组开头来指定:DOMAIN_OR_WORKGROUP/USER_NAME

作为最后的手段,你总是可以使用以下命令:

cd /media/network/DOMAIN_OR_WORKGROUP:USER_NAME:USER_PASSWORD@COMPUTER_NAME

相关内容