top命令user为数字的用户是什么

0    260    2

Tags:

👉 本文共约2530个字,系统预计阅读时间或需10分钟。

top命令里的user列为数字

top命令里,user列若为数字,则表示docker内用户的userid,可以使用docker内de/etc/passwd文件查看。

其它

img

平时做应急的过程中,排查过程使中用htop或者top经常会发现很多user是数字的用户,但是去看/etc/passwd却没有对应的用户?并且进程/proc目录对应的目录和可执行文件都在不存在。本文通过实践解决了自己在工作中的对于一些技术细节上的疑惑。

以上面的user为33为例,所对应的pid为19390。

img

并且路径和文件都不存在,说明文件并不在宿主机上。

img

我们换成htop命令查看。发现进程链中这个apache2的父进程是containerd-shim-runc-v2,也就说明apache2是容器中的进程。

img

既然是容器中的文件那么宿主机无法打开也就可以解释了。

思考1:所以这里对应的user对应的数字33也就是容器中的用户?

进到容器中查看进程信息。

img

对应/etc/passwd的www-data用户的uid号。

img

就能说明为什么宿主机的命令下执行top命令看到的进程user为数字了。

思考2:为什么容器内的www-data不能在宿主机上显示,而是对应的uid呢?

我的猜测是这个uid其实是一个映射。为了证实我的想法。

img

以games用户为例对/etc/passwd修改,将其uid从12改为33测试。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复