用户没有登录 '???'

jaa*_*aam 5 shutdown security users

今天的会议记录:

x@yz:~$ shutdown now
User nobody is logged in on ???.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.
Run Code Online (Sandbox Code Playgroud)

我一直在使用shutdown now,从未见过这样的东西。这是什么?什么是nobody“业务上????我是我的系统的唯一用户,从来没有nobody在那里搞砸过

编辑(根据评论):

x@yz:~$ ps -aux | grep nobody
nobody    2666  0.0  0.0  45408   132 ?        Ss   May  09   0:00 /lib/systemd/systemd --user
nobody    2667  0.0  0.0 163956     8 ?        S    May  09   0:00 (sd-pam)
x        11189  0.0  0.0  24480  1004 pts/0    S+   02:50   0:00 grep --color=auto nobody

x@yz:~$ ps -U 65534
 PID TTY          TIME CMD
 2666 ?        00:00:00 systemd
 2667 ?        00:00:00 (sd-pam)
Run Code Online (Sandbox Code Playgroud)

小智 5

澄清这一切: -

1.你的系统怎么没人用户?

在许多 Linux 和 Unixes 发行版中,Nobody 用户是在全新安装时默认创建的伪用户

2.谁是nobody用户?

Nobody ”用户对系统的权限最少。它不拥有任何文件,不属于特权组,并且除了每个其他用户都拥有的能力之外没有其他任何能力。无人用户没有分配给它的外壳。

~$ sudo grep nobody /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
Run Code Online (Sandbox Code Playgroud)

3. nobody 用户的目的是什么?

在早期的 Unix 和 Linux 发行版中,通常在 nobody 用户下运行守护程序(例如网络服务器)以限制对系统其余部分的损害,这样如果恶意用户获得了对此类守护程序的控制权,他就没有访问任何文件或特权。

但问题是,当有多个守护进程与 nobody 用户运行时,这不再有意义。这就是为什么今天这样的守护进程有自己的用户。

4.如何让nobody用户登录你的系统?

您可能正在运行一些在 nobody 用户下运行的服务/守护程序。一些服务示例可以是: httpd、nfs、postfix 等

5. 在你的系统中,在 nobody 用户下运行的两个进程是什么?

  • systemd --user 用户第一次登录时启动的实例(在您的情况下是nobody用户)
  • (如果启用了pam_systemd),systemd 会启动一个子进程“(sd-pam)”,使用“systemd-user”服务名称为用户打开 PAM 会话。

6. 为什么进程(systemd 和 sd-pam)仍然存在,即使在 nobody 用户下运行的服务不再运行?

好吧,这已被报告为一个错误,其中

Systemd-user 未正确关闭其 PAM 会话。

Systemd 无法正确关闭 pam 会话,因为 sd-pam 子进程在 pam_open_session() 之后删除了权限。因此 pam_close_session() 以用户身份运行,而不是以 root 身份运行,这会破坏需要执行特权任务以清理会话的 PAM 模块。

有关这方面的更多信息:

https://github.com/systemd/systemd/issues/8598

https://github.com/systemd/systemd/issues/1350

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803907;msg=5

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749268

  • 不需要“sudo”来“grep”文件“/etc/passwd”。请停止在所有事情上使用“sudo”。 (2认同)