远程家庭文件夹与可选,但首选本地encryption的文件夹

我有一个用例,默认情况下,所有用户都在远程挂载的主目录中工作。 但是,有时候他们更喜欢在一台或多台机器上安装本地家庭,例如,由于networking太慢,数据量太大等原因。

因此,我想build立以下几点:

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

简而言之:不要在全局范围内定义用户的主目录,而要在具有默认位置的机器级别上定义。

当前状态:

  1. validation等OpenLDAP已启动并正在运行。 homeDirectory在LDAP中设置为/home/$USER
  2. 远程文件夹使用带有硬编码服务器的pam_mount挂载到/smb/$USER
  3. 如果用户想在机器上使用他的远程文件夹,他将/home/$USER符号链接到/smb/$USER 。 另一方面,如果用户需要本地home文件夹,则会手动创build一个空目录(或/etc/skel的副本)。

去做:

  1. 摆脱符号链接(如果可能的话)
  2. 可以指定主文件夹所在的dynamic远程服务器
  3. 如果没有本地文件夹或无法安装远程文件夹,则创build一个encryption的主文件夹(ecryptfs)

当试图在pam_script的帮助下实现时,我碰到了几个障碍:

  1. 脚本以root身份运行,因此只需导出一个新的$HOMEvariables不会产生任何影响
  2. ecryptfs-utils是可怕的logging和有很多缺点。 没有可能手动指定用户的主目录。 Afaik是从远程文件夹的挂载点而不是/home/$USER getent获取的