如果您使用在 Arch Linux 上创建一个没有主目录的用户useradd -M test,则会在 中创建如下所示的条目/etc/passwd:
test:x:1001:1001::/home/test:/bin/bash
Run Code Online (Sandbox Code Playgroud)
但因为/home/test不存在,这会导致shadow.service失败。将主目录留空会产生相同的错误。我发现一个旧线程建议使用/dev/null,但我不确定这是否是最好的解决方案。ATM,忽略它似乎是最好的解决方案,但也许还有更好的方法。
shadow.service归结为pwck和grpck:
### [...]
ExecStart=/bin/sh -c '/usr/bin/pwck -r || r=1; /usr/bin/grpck -r && exit $r
### [...]
Run Code Online (Sandbox Code Playgroud)