非交互式用户帐户的主目录应该设置为多少?

非交互式用户帐户的主目录应该设置为多少?
[root@Acheron ~]# systemctl status shadow
● shadow.service - Verify integrity of password and group files
   Loaded: loaded (/usr/lib/systemd/system/shadow.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2019-05-14 13:59:34 EDT; 1s ago
  Process: 25502 ExecStart=/bin/sh -c /usr/bin/pwck -r || r=1; /usr/bin/grpck -r && exit $r (code=exited, status=1/FAILURE)
 Main PID: 25502 (code=exited, status=1/FAILURE)

May 14 13:59:34 Acheron systemd[1]: Started Verify integrity of password and group files.
May 14 13:59:34 Acheron sh[25502]: user 'netdata': directory '/home/netdata' does not exist
May 14 13:59:34 Acheron sh[25502]: pwck: no changes
May 14 13:59:34 Acheron systemd[1]: shadow.service: Main process exited, code=exited, status=1/FAILURE
May 14 13:59:34 Acheron systemd[1]: shadow.service: Failed with result 'exit-code'.

此用户不应拥有主目录。我想更新其条目/etc/passwd以删除主目录。我可以直接编辑此文件,但这似乎不安全。有没有更好的方法?

答案1

查看中的其他条目/etc/passwd似乎“没有主目录”的用户实际上只是将其主目录设置为/

我曾经usermod -d / netdata更新用户的主目录来匹配。

答案2

这取决于您的意图。您是希望用户使用交互式 shell 登录,还是希望用户帐户无法通过正常方式登录?我没有资格直接评论您的问题,因此我通过“答案”来澄清问题。

答案3

您的意图似乎是确保用户帐户存在,但无法用于登录系统。

假设我是正确的,我会采取三个步骤。

  • 修改用户记录并指定共享主目录
  • 修改用户记录并指定'nologin'shell
  • 删除用户以前的主目录。

首先删除用户的主目录(在更改用户主目录之前执行此操作非常重要)。 rm -rf ~username

前两个可以使用 usermod 命令实现: usermod -d /new/shared/directory -s /sbin/nologin

请注意,当使用 useradd 创建新帐户时,您可以指定这些选项(以及更多选项)。

Usermod 示例,大部分 useradd 的工作方式相同

相关内容