首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pgrep不显示我的过程,而sudo pgrep会显示?

为什么pgrep不显示我的过程,而sudo pgrep会显示?
EN

Unix & Linux用户
提问于 2018-04-18 21:07:00
回答 2查看 715关注 0票数 5

我查看了一个进程列表并筛选出了ssh-agent,它正确地显示了我期望的3个进程:

代码语言:javascript
复制
$ ps -ef | grep ssh-agent
belmin   1051     1  0 16:05 ?        00:00:00 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
belmin   2569     1  0 16:09 ?        00:00:00 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
belmin   2655     1  0 16:09 ?        00:00:00 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
belmin   5093  2596  0 16:17 pts/1    00:00:00 grep --color ssh-agent

但是,如果我执行一个pgrep,它不会列出这3个进程,除非我升级到sudo

代码语言:javascript
复制
$ pgrep -a ssh-agent

$ sudo !!
sudo pgrep -a ssh-agent
1051 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
2569 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
2655 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple

最初,我认为这是因为PPID是1,但是,这并不是其他进程的问题,因为PPID是1,所以不是这样。

我在这里错过了什么?

更新:

因此,应用命名空间参数(--ns)显然不需要sudo--不管我提供了什么名称空间:

代码语言:javascript
复制
$ for n in 'ipc' 'mnt' 'net' 'pid' 'user' 'uts'; do echo pgrep -a --ns $n ssh-agent; pgrep -a --ns $n ssh-agent; done
    pgrep -a --ns ipc ssh-agent
    12986 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
    pgrep -a --ns mnt ssh-agent
    12986 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
    pgrep -a --ns net ssh-agent
    12986 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
    pgrep -a --ns pid ssh-agent
    12986 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
    pgrep -a --ns user ssh-agent
    12986 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple
    pgrep -a --ns uts ssh-agent
    12986 ssh-agent -a /home/belmin/.ssh/.auth_sock.pineapple

还不清楚为什么。我会继续挖。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-04-19 12:32:08

Procps 3.3.13在名称空间上有pgrep过滤器。主要是为了避免在它的命名空间之外杀死。然而,对于某些过程,特别是SSH,由于某些原因,它给出了一些奇怪的结果。

3.3.14这一变化已恢复。

票数 2
EN

Unix & Linux用户

发布于 2018-04-18 23:08:09

您可以使用选项/proc设置安装hidepid文件系统。这是一个安全功能,以保护信息不受系统上其他用户的影响。有关详细信息,请参阅man页面以获取proc。通过执行grep proc /etc/mtab并查看结果是否包括hidepid=2,您可以检查是否是这种情况。您可以通过修改文件/etc/fstab来更改设置。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/438600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档