psリストにpingプロセスが見つからないのはなぜですか?

psリストにpingプロセスが見つからないのはなぜですか?

一般ユーザーとして「ps」リストを起動したときに「ping」プロセスを表示できないのはなぜですか?

ping バイナリには setuid ビットがあります。

 ls -l /bin/ping
-rwsr-xr-x 1 root root 64424 jun 28  2019 /bin/ping

バックグラウンドでpingを実行し、

ping google.com > /dev/null &
[1] 28193

psを私のユーザー(enn)として使用して、このプロセスを見つけても見つかりません。

 ps -ef  | grep 28193

そしてスーパーユーザーを使って見つけることができます。

sudo ps -ef | grep 28193 | grep -v grep
enn  28193  6878  0 13:49 pts/3    00:00:00 ping google.com

使用メモ関連IDを印刷すると、{u、e、r}id / {g、e、r}id = 66973、64000でpingプロセスが実行されていることがわかります。

私が見ることができる唯一の違いはスエイド、0に設定

sudo ps -e -o pid,uid,gid,euid,egid,ruid,rgid,suid,sgid,cmd | grep 28193 | grep -v grep

28193 66973 64000 66973 64000 66973 64000     0 64000 ping google.com

その理由を理解できません。一般ユーザーとしてプロセスを見ることができない理由を理解するために誰かを助けることができますか?

システムメッセージ: 「Ubuntu 18.04.6 LTS」

よろしくお願いします。

ベストアンサー1

ここではうまくいきます(Fedora 34)。私のGnome端末の1つのタブping 8.8.8.8と別のタブで実行します。

$ pgrep ping
295323
$ ps -ef | grep 295323 
user  295323    3772  0 18:50 pts/4    00:00:00 ping 8.8.8.8
user  295628    3726  0 18:53 pts/3    00:00:00 grep --color=auto 295323

PIDを間違ってコピーしていませんか? (私はほぼ半分くらいこのようなことを経験しました。)まだ実行中ですかping(ターゲットが見つからない場合は実行が停止します)。

おすすめ記事