调查解决方案:

调查解决方案:

我正在尝试找出一种快速简单的方法来查看每个人的有效用户 ID 列表...我本以为如果有人切换了用户帐户,“w”或“who”将能够显示...但是它只显示他们登录时使用的真实用户 ID。

答案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

查看此处的第二个输出块(对应于/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):由 user2 (uid=2000) 为用户 user1 打开的会话

ps aux | grep username应该列出在“用户名”下运行的 shell,这是检查“用户名”活动的快速方法,如果您不希望找到任何“用户名”活动,则非常引人注目。但这不会告诉您谁以“用户名”登录,因此仍然需要查阅日志文件。

对于大量用户来说,这些检查可能会变得很麻烦,我希望有一些类似ps -eo ruid,euid针对用户而不是所有进程的检查,但我发现没有那么简单。

答案3

调查解决方案:

我遇到了这个问题,试图确定谁通过服务帐户攻击服务器。

通过sudo进入服务帐户然后检查,~/.ssh/authorized_keys我能够识别用户并与他们讨论他们的使用情况。

无论如何,这就是我解决问题的方法并且它有效......

相关内容