![如何在 Linux 上使用不同的凭据(用户名和密码)挂载 smb 驱动器?](https://linux22.com/image/652438/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%8A%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E5%87%AD%E6%8D%AE%EF%BC%88%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%AF%86%E7%A0%81%EF%BC%89%E6%8C%82%E8%BD%BD%20smb%20%E9%A9%B1%E5%8A%A8%E5%99%A8%EF%BC%9F.png)
好的,我这里有一台运行 Linux(CentOS 7)的笔记本电脑。这台笔记本电脑将由不同的用户使用(笔记本电脑上有不同的登录名)。我们的网络中有一个 Samba 服务器。所有在笔记本电脑上有登录名的用户对于不同的 smb 驱动器也有不同的登录名(用户名和密码)。现在的问题是如何配置 Linux 笔记本电脑,以便每个用户的 smb 驱动器都能自动挂载?
默认提示和提示,例如在 fstab 中添加以下行
//servername/sharename /media/windowsshare cifs uid=ubuntuuser,credentials=/home/ubuntuuser/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
并创建凭证文件 ( /home/ubuntuuser/.smbcredentials
) 在我的情况下不起作用,因为凭证文件对于每个用户都是相同的(但应该是不同的)。此外,指定凭证文件也~/.smbcredentials
不起作用,因为~/
在挂载时主目录未知...
答案1
找到了。
资料来源:http://wiki.centos.org/TipsAndTricks/WindowsShares在“5. 另一个更好的方法”
诀窍是使用 autofs:
将此行添加到
/etc/auto.master
:/mnt/smb /etc/auto.smb.top
创建
/etc/auto.smb.top
为:* -fstype=autofs,-Dhost=& file:/etc/auto.smb.sub
创建 /etc/auto.smb.sub 为(根据需要调整):
* -fstype=cifs,credentials=/root/secret.txt,uid=500,gid=100 ://${host}/&
在这里,我还可以使用
${HOME}
类似* -fstype=cifs,credentials=${HOME}/secret.txt,uid=500,gid=100 ://${host}/&
这样每个用户都有自己的凭证文件:-)
让我们确保权限位正确并重新启动服务:
[root@host]# chmod 644 /etc/auto.smb.* [root@host]# /sbin/service autofs restart
现在您只需输入以下内容即可访问:
[user@host]$ cd /mnt/smb/winbox/getme