使用 AutoFS 按用户安装 CIFS 共享

使用 AutoFS 按用户安装 CIFS 共享

当导航到主文件夹内的特定文件夹 ~/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

相关内容