top
毎日、私は次のようなものを使ってDebian(Stretch)サーバーのプロセスをps -aux
見ていきます。
$ sudo passwd --status myuser
myuser L 12/12/2016 ...
ただし、ユーザーが実行中のアクティビティ(インストールされていない状態)に戻ると、約ps
2分ごとに数秒間持続し、1つのCPUで多くのリソース(50〜90%)を消費できます。top
node
表示される内容は次のとおりです$ top -U myuser
。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2172 myuser+ 20 0 382868 144940 34668 R 64.5 2.4 0:01.94 node
そして$ ps -e -H -O pid,ppid,stime,etime,user,args> file
PID PID PPID STIME ELAPSED USER COMMAND S TTY TIME COMMAND
2172 2172 2155 11:22 00:05 myuser+ node server S ? 00:00:02 node server
ロックされたユーザーがブロックする意図でこのプロセスをどのように開始したかを詳しく調べるにはどうすればよいですか。
編集する:@Paul_Pedantが提案したようにユーザーのcrontabを確認しましたが、スケジュールされた操作はありませんでした。
また、ユーザーのメールを確認しましたが、ルートから毎日メールが届きました(彼らはマシンを最初にインストールしたので、以前はrootアクセス権を持っていました)。電子メールの件名は、コメントに示されているように、Cron Work Reportです。ただし、ユーザーに正しいクローン操作がありません。私は現在daily.cronを調べていますが、そこにユーザーに関連するコンテンツが見つからないようです。
答え1
最も可能性の高いシナリオは、ユーザーに定期的に実行されるcronjobがあることです。
以下は予期しないいくつかのシナリオです。
同じUIDにマップされた/ etc / passwdに複数のユーザー名がある可能性があります。 LDAPまたはActive Directory認証を使用している可能性があり、/etc/nsswitch.confは同じUIDを持つ複数のソースからパスワードエントリを取得します。指定されたUIDで見つかった最初のユーザー名を表示しますps
。top
UIDを使用して新しいプロセスを生成するルートとして実行されるプログラムがあるかもしれません。たとえば、fastcgiを介してノードに接続し、別のUIDを使用してノードを自動的に起動するようにApache Webサーバーを設定できます。 https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
node
実行可能ファイルをユーザーのホームディレクトリにコピーできるので、rootとしてインストールしても構いません。
答え2
ドッカーが理由だ。
詳細はこちら:https://forums.docker.com/t/confusion-about-the-user-a-process-run-as/48702/2
ホストのUID 1000がロックされています。
ただし、Docker はコンテナ内で UID 1000 でプロセスを起動し、ホストでプロセスを表示すると、これらのプロセスはロックされたユーザー起動プロセスとして表示されます。
明らかに、コンテナ内のUID 1000はホストのUID 1000とは異なります。おそらく1000は、adduser
実行時にデフォルトで使用可能な最初のIDなので、使用されます。