![使用 AutoFS 按用户安装 CIFS 共享](https://linux22.com/image/1156902/%E4%BD%BF%E7%94%A8%20AutoFS%20%E6%8C%89%E7%94%A8%E6%88%B7%E5%AE%89%E8%A3%85%20CIFS%20%E5%85%B1%E4%BA%AB.png)
当导航到主文件夹内的特定文件夹 ~/groupdrive 时,每个用户都应该能够使用自己的凭据访问 cifs 组共享。凭据存储在 ~/.cifs_credentials 文件中。
我使用 pam_mount 实现了这一点,但我被大量重复且未正确卸载的挂载所困扰。
如何使用 autofs 实现此行为?是否可以在同一挂载点(例如 /mnt/groupdrive)上使用不同的凭据多次挂载共享,并从主文件夹对其进行符号链接?
答案1
您可以在 autofs 中使用变量,这可能是满足您要求的解决方案。每个人都有自己的 autofs 方式,这是我的。我刚刚在 Ubuntu 18.04 上这样做了,主要是为了看看它在这个版本中是否仍然有效:
我编辑了 /etc/auto.master 并在最后一行添加:
/mnt/Samba /etc/auto.sambashares --timeout=30 --ghost
我特意将父文件夹设为 /mnt/Samba,而不是 /media 或主目录下的内容,因为这会导致操作系统造成严重混乱。
我编辑了 /etc/auto.sambashares 并使用 ${HOME} 和在我的情况下的 ${UID} 变量添加了一行:
GroupShare -fstype=cifs,rw,credentials=${HOME}/.cifs_credentials,uid=${UID},iocharset=utf8 ://server/share
然后重新启动 autofs 服务。
当用户 a 访问 /mnt/Samba/GroupShare(可以添加书签)时,他在 /home/usera/.cifs_credentials 处的凭据将用于访问共享,而用户 b 将在其自己的主目录中使用他自己的凭据。
并发用户的替代方法:
** 在 /mnt 下为每个用户创建一个父文件夹 - 例如:/mnt/bob 和 /mnt/mary。
** 将所有权更改为每个用户(即 sudo chown bob /mnt/bob )
** 仅限该用户访问( sudo chmod 0770 /mnt/bob )
** 将 auto.master 中的一行替换为两行:
/mnt/bob/Samba /etc/auto.sambashares-bob --timeout=30 --ghost
/mnt/mary/Samba /etc/auto.sambashares-mary --timeout=30 --ghost
** 然后创建两个 auto.sambashares-xxx 文件,每个文件都有相同的行:
GroupShare -fstype=cifs,rw,credentials=${HOME}/.cifs_credentials,uid=${UID},iocharset=utf8 ://server/share