diff --git a/nixos/modules/services/network-filesystems/nfsd.nix b/nixos/modules/services/network-filesystems/nfsd.nix index 398ef73449fa..1b62bfa82035 100644 --- a/nixos/modules/services/network-filesystems/nfsd.nix +++ b/nixos/modules/services/network-filesystems/nfsd.nix @@ -8,8 +8,6 @@ let exports = pkgs.writeText "exports" cfg.exports; - rpcUser = "statd"; - in { @@ -142,40 +140,36 @@ in environment.etc.exports.source = exports; - systemd.services.nfs-server = { - enable = true; - wantedBy = [ "multi-user.target" ]; - }; + systemd.services.nfs-server = + { enable = true; + wantedBy = [ "multi-user.target" ]; - systemd.services.nfs-mountd = { - enable = true; - restartTriggers = [ exports ]; - - preStart = optionalString cfg.createMountPoints '' - # create export directories: - # skip comments, take first col which may either be a quoted - # "foo bar" or just foo (-> man export) - sed '/^#.*/d;s/^"\([^"]*\)".*/\1/;t;s/[ ].*//' ${exports} \ - | xargs -d '\n' mkdir -p - ''; - }; - - # rpc-statd will drop privileges by changing user from root to the owner of - # /var/lib/nfs - systemd.tmpfiles.rules = [ - "d /var/lib/nfs 0700 ${rpcUser} ${rpcUser} - -" - ] ++ map (e: - "d /var/lib/nfs/${e} 0755 root root - -" - ) [ "recovery" "v4recovery" "sm" "sm.bak" ]; - - users = { - groups."${rpcUser}" = {}; - users."${rpcUser}" = { - description = "NFS RPC user"; - group = rpcUser; - isSystemUser = true; + preStart = + '' + mkdir -p /var/lib/nfs/v4recovery + ''; }; - }; + + systemd.services.nfs-mountd = + { enable = true; + restartTriggers = [ exports ]; + + preStart = + '' + mkdir -p /var/lib/nfs + + ${optionalString cfg.createMountPoints + '' + # create export directories: + # skip comments, take first col which may either be a quoted + # "foo bar" or just foo (-> man export) + sed '/^#.*/d;s/^"\([^"]*\)".*/\1/;t;s/[ ].*//' ${exports} \ + | xargs -d '\n' mkdir -p + '' + } + ''; + }; + }; } diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix index 67e5aa0bd58f..ddcc0ed8f5a4 100644 --- a/nixos/modules/tasks/filesystems/nfs.nix +++ b/nixos/modules/tasks/filesystems/nfs.nix @@ -101,6 +101,13 @@ in }; systemd.services.rpc-statd = - { restartTriggers = [ nfsConfFile ]; }; + { restartTriggers = [ nfsConfFile ]; + + preStart = + '' + mkdir -p /var/lib/nfs/{sm,sm.bak} + ''; + }; + }; }