用户无人登录“???”

用户无人登录“???”

今天会议的文字记录:

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'.

我一直在使用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)

答案1

为了澄清这一切:-

1. 系统中没有nobody用户怎么进来的?

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

2. 谁是 nobody 用户?

没有人“ 用户在系统上拥有最少的权限。它不拥有任何文件,不属于任何特权组,并且除了其他用户拥有的能力之外没有任何能力。没有人为用户分配 shell。

~$ sudo grep nobody /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

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

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

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

4. 无人用户如何登录您的系统?

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

5. 您的系统上以无人用户身份运行的两个进程是什么?

  • systemd --用户首次登录时启动的实例(在您的情况下是无人用户)
  • (如果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

相关内容