我正在管理共享服务器,当我创建用户时,我想在其主目录中声明一个指向所有用户都可以读取和写入的共享文件夹的符号链接。我想在configuration.nix 文件中声明这一点,以便设置新用户就像将它们添加到文件并运行nixos-rebuild 开关一样简单。这似乎是一个常见的用例,所以我很惊讶它不存在,这让我认为出于道德原因它可能不存在(你怎么敢声明用户主目录的内容)。
答案1
对于该特定用例,没有 NixOS 模块,但您可以使用 oneshot systemd 用户服务来检查符号链接是否存在,如果不存在则创建它。一种方法是使用用户激活脚本:
system.userActivationScripts.linktosharedfolder.text = ''
if [[ ! -h "$HOME/path/to/symlink" ]]; then
ln -s "$HOME/path/to/symlink" "/path/to/shared/folder"
fi
'';
该脚本将在用户每次登录时运行。