すべての人の有効なユーザーIDのリストをすばやく簡単に表示する方法を探しています。誰かがユーザーアカウントを切り替えると、「w」または「who」が表示される可能性があると思いました。 .しかし、ログインした実際のユーザーIDのみが表示されます。
答え1
1つの方法は、たとえばfuser
疑似端末デバイスにコマンドを適用することです。/dev/pts
sudo fuser -v /dev/pts/*
たとえば、Linuxシステムにログインしてuser1
実行し、別の端末を介して再度ログインしましたsudo su user2
。user1
を実行した後、sudo fuser -v /dev/pts/*
次のような出力を取得します。
USER PID ACCESS COMMAND
/dev/pts/0: user1 5533 F.... bash
root 6291 F.... sudo
/dev/pts/1: user1 5655 F.... bash
root 5748 F.... sudo
root 5752 F.... su
user2 5753 F.... bash
ここで2番目の出力ブロック(に対応)を見ると、に切り替わったことがわかり/dev/pts/1
ます。この方法の詳細については、次の投稿をご覧ください。user1
user2
疑似端末装置の反対側に誰がいるのか、どうすればわかりますか?
答え2
ログイン情報は /var/log/secure ファイル (red hat\centos) または /var/log/auth.log(debian\ubuntu) に表示され、ログイン情報の形式には「session opening for」行テキストが含まれます。したがって、cat /var/log/(secure OR auth.log) | grep "session opened for"
次のログインリストが提供されます。
Jan 9 07:07:07 ホスト名 su:pam_unix(su:session): ユーザー user1 に対して user2 (uid=2000) が開かれたセッション
ps aux | grep username
「ユーザー名」で実行されるシェルをリストする必要があります。これは「ユーザー名」アクティビティを確認する簡単な方法であり、「ユーザー名」アクティビティを見つけることを期待していない場合は非常に目に見えます。ただし、これは「ユーザー名」でログインしている人が誰であるかを知らせないため、ログファイルを参照する必要があります。
多数のユーザーにとっては、これらの確認は面倒です。すべてのプロセスの代わりにユーザーを確認するのと同じことがあればと思いますが、それほど単純ではps -eo ruid,euid
ないことがわかりました。
答え3
ソリューション調査:
誰がサービスアカウントを介してサーバーを攻撃しているかを確認しようとすると、この問題が発生しました。
sudo
サービスアカウントに入って確認することで、ユーザー~/.ssh/authorized_keys
を識別して使用について議論することができました。
とにかく、これは問題を解決した方法で動作します...