如何列出所有具有终端会话的用户,包括屏幕会话?

San*_*hal 3 linux bash gnu-screen

我想要一个在我的 Linux 系统上活动的所有用户的列表,包括那些运行但分离屏幕会话的用户。该who命令仅显示我当前登录的用户,而不显示具有分离屏幕会话等的用户。

我正在考虑解析 的输出,ps但这也会让用户显示他是否正在运行 cron 作业。

Arc*_*ege 5

尝试:

$ ps axno user,tty | awk '$1 >= 1000 && $1 < 65530 && $2 != "?"' | sort -u
Run Code Online (Sandbox Code Playgroud)

这应该会告诉您所有带有会话终端(如屏幕中的窗口)的进程的 UID。我使用 UID 来清除“系统”用户(如 apache)和 nobody(高 UID),并忽略守护进程。