如何在 Linux 上使用不同的凭据(用户名和密码)挂载 smb 驱动器?

如何在 Linux 上使用不同的凭据(用户名和密码)挂载 smb 驱动器?

好的,我这里有一台运行 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:

  1. 将此行添加到/etc/auto.master

    /mnt/smb /etc/auto.smb.top
    
  2. 创建/etc/auto.smb.top为:

    * -fstype=autofs,-Dhost=& file:/etc/auto.smb.sub
    
  3. 创建 /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}/&
    

    这样每个用户都有自己的凭证文件:-)

  4. 让我们确保权限位正确并重新启动服务:

    [root@host]# chmod 644 /etc/auto.smb.*
    [root@host]# /sbin/service autofs restart
    
  5. 现在您只需输入以下内容即可访问:

    [user@host]$ cd /mnt/smb/winbox/getme
    

相关内容