远程主文件夹,带有可选但首选的本地加密文件夹

远程主文件夹,带有可选但首选的本地加密文件夹

我有一个用例,默认情况下所有用户都在远程安装的主目录中工作。但是,有时他们更喜欢一台或多台机器上的本地主目录,例如因为网络太慢、数据太大等。

因此,我喜欢设置以下内容:

  1. 通过 LDAP 分发用户
  2. 默认情况下,用户获取其远程主文件夹,例如/mnt/smb/$SERVER/$USER
  3. 如果存在主文件夹/home/$USER(符号链接或文件夹),则应选择该文件夹并将其设置为$HOME-env 等。
  4. 如果需要创建主目录(因为它指向/home/$USER),则应使用 ecryptfs 创建

简而言之:不要全局定义用户的主目录,而是在机器级别定义一个默认位置。

当前状态:

  1. OpenLDAP 身份验证等功能已启动并正在运行。在 LDAP 中homeDirectory设置为/home/$USER
  2. 使用 pam_mount 挂载远程文件夹,并使用硬编码的服务器和位置/smb/$USER
  3. 如果用户想要在计算机上使用远程文件夹,他可以符号链接/home/$USER/smb/$USER。另一方面,/etc/skel如果用户想要本地主文件夹,则手动创建一个空目录(或 的副本)。

去做:

  1. 删除符号链接(如果可能的话)
  2. 可以指定主文件夹所在的动态远程服务器
  3. 如果不存在本地文件夹或无法挂载远程文件夹,则创建一个加密主文件夹 (ecryptfs)

当我尝试借助 pam_script 来实现它时,我遇到了几个障碍:

  1. 脚本以 root 身份运行,因此简单地导出新$HOME变量不会产生任何效果
  2. ecryptfs-utils 的文档很糟糕,有很多缺点。无法手动指定用户的主目录。据我所知,它是从 getent 中获取的,getent 是远程文件夹的挂载点,而不是/home/$USER

相关内容