我希望用户能够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