Hello Stephen,
I was able to resolve this by following these steps (after doing strace nfsdcltrack init to find out why it returned -13) [1]
# mkdir /var/lib/nfs/nfsdcltrack# nfsdcltrack init/var/lib/nfs/nfsdcltrack/main.sqlite is presentsqlite /var/lib/nfs/nfsdcltrack/main.sqlite
.tables gives clients and parameters.schema clients gives CREATE TABLE clients (id BLOB PRIMARY KEY, time INTEGER, has_session INTEGER);.schema parameters gives CREATE TABLE parameters (key TEXT PRIMARY KEY, value TEXT);# systemctl restart nfs-serverYour journalctl should show success message.
[1] strace output (clipped)
lstat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcab32c) = -1 ENOENT (No such file or directory)
getpid() = 4266
getpid() = 4266
stat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcaaf18) = -1 ENOENT (No such file or directory)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDWR|O_CREAT|O_LARGEFILE|O_CLOEXEC, 0644) = -1 EACCES (Permission denied)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
mkdir("/var/lib/nfs/nfsdcltrack", 0700) = -1 EEXIST (File exists)
stat64("/var/lib/nfs/nfsdcltrack", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcab32c) = -1 ENOENT (No such file or directory)
getpid() = 4266
stat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcaaf18) = -1 ENOENT (No such file or directory)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDWR|O_CREAT|O_LARGEFILE|O_CLOEXEC, 0644) = -1 EACCES (Permission denied)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
Cheers,
Hieu