Linux如何查看哪些用户正在使用系统

发布时间 - 2025-09-05 00:00:00    点击率:
使用w命令可查看当前登录用户及其进程,执行w命令后,系统显示用户名、终端、登录时间、空闲时间、CPU使用情况及正在运行的命令,帮助管理员了解用户活动和资源占用情况。

要查看Linux系统上哪些用户正在使用,可以使用多种命令,它们提供了不同层面的信息。最常用的方法是使用

w
who
users
命令。

w
命令显示当前登录用户及其正在运行的进程。
who
命令列出当前登录用户的信息,包括用户名、终端和登录时间。
users
命令则简单地列出当前登录用户的用户名。此外,
ps
命令结合
grep
也可以用来查找特定用户运行的进程。

如何使用
w
命令查看当前登录用户及其进程?

w
命令是一个强大的工具,它不仅显示了当前登录的用户,还显示了他们的登录时间、终端、以及他们正在运行的进程。这对于了解系统资源的使用情况非常有帮助。

例如,在终端输入

w
后,你会看到类似下面的输出:

USER     TTY      FROM             LOGIN.   IDLE   JCPU   PCPU WHAT
user1    pts/0    192.168.1.100    10:00   10m  0.01s  0.01s bash
user2    pts/1    192.168.1.101    10:05    5m  0.02s  0.01s top

这里的

USER
列显示了用户名,
TTY
列显示了用户登录的终端,
FROM
列显示了用户的登录IP地址(如果通过网络登录),
LOGIN.
列显示了登录时间,
IDLE
列显示了用户空闲的时间,
JCPU
列显示了所有进程使用的CPU时间,
PCPU
列显示了当前进程使用的CPU时间,
WHAT
列显示了用户当前正在运行的命令。

通过

w
命令,你可以快速了解哪些用户正在使用系统,以及他们正在做什么,这对于系统管理和故障排除非常有用。例如,如果发现某个用户正在运行占用大量CPU资源的进程,你可以及时采取措施,避免影响其他用户的正常使用。

who
命令和
users
命令有什么区别?

who
命令和
users
命令都可以用来查看当前登录用户,但它们提供的输出信息有所不同。
who
命令提供更详细的信息,包括用户名、终端、登录时间和登录IP地址(如果通过网络登录)。而
users
命令则只简单地列出当前登录用户的用户名,多个用户登录同一个终端时,用户名会重复显示。

例如,在终端输入

who
后,你会看到类似下面的输出:

user1    pts/0    2025-10-27 10:00 (192.168.1.100)
user2    pts/1    2025-10-27 10:05 (192.168.1.101)

而输入

users
后,你可能会看到类似下面的输出:

user1 user2

如果

user1
同时登录了两个终端,那么
users
命令的输出会是:

user1 user1 user2

who
命令更适合需要了解用户登录详情的情况,而
users
命令则更适合快速查看当前有哪些用户登录了系统。选择哪个命令取决于你的具体需求。

如何使用
ps
命令和
grep
命令查找特定用户运行的进程?

ps
命令用于显示当前进程的状态,而
grep
命令用于在文本中查找指定的字符串。结合使用这两个命令,可以查找特定用户运行的进程。

例如,要查找用户

user1
运行的进程,可以使用以下命令:

ps -u user1 -o pid,user,comm

这个命令的含义是:

  • ps -u user1
    :显示用户
    user1
    运行的进程。
  • -o pid,user,comm
    :指定输出的列,包括进程ID(PID)、用户名(USER)和命令名(COMM)。

执行这个命令后,你会看到类似下面的输出:

PID USER     COMMAND
1234 user1    bash
5678 user1    top

这个输出显示了用户

user1
运行的进程的PID、用户名和命令名。通过这个方法,你可以精确地查找特定用户运行的进程,这对于监控用户行为和排查问题非常有帮助。例如,你可以使用这个方法查找某个用户是否运行了恶意程序,或者某个用户是否占用了过多的系统资源。

当然,也可以使用管道符

|
结合
grep
命令,例如:

ps aux | grep user1

这种方式会列出所有进程,然后

grep
过滤出包含
user1
的行。虽然结果会包含一些无关信息(例如
grep
进程本身),但可以快速查看用户相关的进程信息。

如何监控用户的活动?

除了查看当前登录用户,有时还需要监控用户的活动,例如他们执行了哪些命令、访问了哪些文件等。这可以通过审计工具来实现,例如

auditd

auditd
是 Linux 系统中的一个审计守护进程,它可以记录系统中的各种事件,包括用户登录、文件访问、命令执行等。要使用
auditd
监控用户的活动,首先需要安装
auditd

sudo apt-get install auditd  # Debian/Ubuntu
sudo yum install auditd      # CentOS/RHEL

安装完成后,需要配置

auditd
,例如添加规则来监控特定用户的活动。例如,要监控用户
user1
执行的所有命令,可以添加以下规则到
/etc/audit/rules.d/audit.rules
文件中:

-a always,exit -F auid=1000 -F arch=b64 -S execve -k user_commands
-a always,exit -F auid=1000 -F arch=b32 -S execve -k user_commands

这里的

auid=1000
是用户
user1
的用户ID,可以通过
id user1
命令查看。添加规则后,需要重启
auditd
服务:

sudo systemctl restart auditd

之后,

auditd
就会记录用户
user1
执行的所有命令。可以使用
ausearch
命令来查看审计日志:

sudo ausearch -k user_commands

通过

auditd
,你可以全面地监控用户的活动,这对于安全审计和故障排查非常有帮助。但是,需要注意的是,
auditd
会产生大量的日志,需要定期清理,避免占用过多的磁盘空间。

如何限制用户的资源使用?

为了避免某个用户占用过多的系统资源,影响其他用户的正常使用,可以限制用户的资源使用。这可以通过

ulimit
命令和
cgroups
来实现。

ulimit
命令用于设置用户进程的资源限制,例如CPU时间、内存使用、文件大小等。例如,要限制用户
user1
的CPU时间为10秒,可以使用以下命令:

ulimit -t 10

这个命令只对当前会话有效,要永久生效,需要将这个命令添加到用户的

.bashrc
.bash_profile
文件中。

cgroups
(Control Groups) 是 Linux 内核提供的一种资源隔离机制,它可以将进程分组,并对每个组设置资源限制。
cgroups
ulimit
更加强大和灵活,可以限制CPU、内存、磁盘I/O等多种资源。

要使用

cgroups
限制用户的资源使用,首先需要安装
cgroups
工具:

sudo apt-get install cgroup-tools  # Debian/Ubuntu
sudo yum install libcgroup          # CentOS/RHEL

安装完成后,需要创建

cgroups
配置文件,例如
/etc/cgconfig.conf
,并添加相应的资源限制。然后,可以使用
cgcreate
命令创建
cgroups
组,并使用
cgclassify
命令将进程添加到组中。

通过

ulimit
cgroups
,你可以有效地限制用户的资源使用,保证系统的稳定性和性能。选择哪个工具取决于你的具体需求,
ulimit
适合简单的资源限制,而
cgroups
适合复杂的资源隔离。


# linux  # centos  # ubuntu  # 工具  # linux系统  # 区别  # 字符串  # 事件  # 你可以  # 可以使用  # 用户登录  # 正在运行  # 你会  # 它可以  # 正常使用  # 来实现  # 这可  # 这对于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android中AutoCompleteTextView自动提示  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel用户密码怎么加密_Laravel Hash门面使用教程  如何实现建站之星域名转发设置?  微信小程序 HTTPS报错整理常见问题及解决方案  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Laravel如何使用查询构建器?(Query Builder高级用法)  如何用y主机助手快速搭建网站?  如何在宝塔面板中创建新站点?  制作公司内部网站有哪些,内网如何建网站?  如何快速重置建站主机并恢复默认配置?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  EditPlus 正则表达式 实战(3)  如何在云指建站中生成FTP站点?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel中的withCount方法怎么高效统计关联模型数量  jQuery 常见小例汇总  如何快速上传自定义模板至建站之星?  Laravel观察者模式如何使用_Laravel Model Observer配置  如何选择PHP开源工具快速搭建网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Python自动化办公教程_ExcelWordPDF批量处理案例  浅谈javascript alert和confirm的美化  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  网页设计与网站制作内容,怎样注册网站?  Laravel集合Collection怎么用_Laravel集合常用函数详解  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Laravel storage目录权限问题_Laravel文件写入权限设置  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  ,在苏州找工作,上哪个网站比较好?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  如何在 React 中条件性地遍历数组并渲染元素  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel如何创建自定义Artisan命令?(代码示例)  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何彻底卸载建站之星软件?  如何快速搭建安全的FTP站点?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤