0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何才能管理Linux中的用户活动

Wildesbeast 来源:21IC 作者:21IC 2020-07-04 11:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如果要管理Linux服务器,则需要准备好使用几个命令来检查用户活动-用户何时连接以及他们连接的频率、所属的用户组以及使用了多少空间、是否在读电子邮件等。

本文介绍了可以帮助您了解用户有哪些、他们在如何工作的多个命令。

finger

finger是获取用户个人资料的一个便捷命令。它使您可以查看谁已登录或专注于单个用户,以查看上一次登录、他们从何处登录、闲置时间有多久(自运行命令以来有多久)等。在该命令中, 我们查看用户nemo。

$ finger nemo

Login: nemo Name: Nemo Demo

Directory: /home/nemo Shell: /bin/bash

On since Fri Jun 19 12:58 (EDT) on pts/1 from 192.168.0.6

7 minutes 47 seconds idle

New mail received Wed Jun 17 18:31 2020 (EDT)

Unread since Sat Jun 13 18:03 2020 (EDT)

No Plan.

我们可以看到nemo的全名、主目录和外壳,还可以看到nemo的最新登录和电子邮件活动。仅在/etc/passwd文件中的全名字段中定义了办公室、办公室电话和家庭电话号码,这些信息才包括在内。比如说:

nemo:x:1001:1001:Nemo Demo,11,540-222-2222,540-333-3333:/home/nemo:/bin/bash)。

上面的输出还表明nemo没有“计划”,但这只是意味着该用户没有创建.plan文件、并将一些文本放入其中。这并不罕见。

如果没有参数,finger将以如下所示的格式显示当前登录列表。您可以看到他们何时登录、从哪个IP地址登录、使用中的伪终端(比如pts/1)以及闲置了多久。

$ finger

Login Name Tty Idle Login Time Office Office Phone

nemo Nemo Demo pts/1 1:24 Jun 19 12:58 (192.168.0.6)

shs Sandra Henry-Stocker pts/0 Jun 19 12:57 (192.168.0.60

w

w命令也以一份格式清晰的列表显示了目前活动的用户,包括闲置时间、用户最近运行了什么命令。它还在最上面一行显示系统已运行了多久,并提供负载平均数字,表明系统有多忙碌。在这里,系统基本上处于闲置状态。

$ w

14:23:19 up 1 day, 20:24, 2 users, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

shs pts/0 192.168.0.6 12:57 0.00s 0.14s 0.01s w

nemo pts/1 192.168.0.6 12:58 1:24m 0.03s 0.03s -bash

id

如果使用id命令,您可以查看用户的数值ID和用户组ID以及该用户是哪些用户组的成员。这些信息从/etc/passwd文件和/etc/group文件获取而来。没有参数的id报告您帐户的信息。

$ id

uid=1000(shs) gid=1000(shs) groups=1000(shs),4(adm),11(admin),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),500(devops)

$ id nemo

uid=1001(nemo) gid=1001(nemo) groups=1001(nemo),16(fish)

auth.log

您可以使用grep之类的命令从/var/log/auth.log文件获取信息。为了使用auth.log数据显示最近登录活动,您可以运行这样的命令:

$ grep “New session” /var/log/auth.log | awk ‘{print $1,$2,$3,$11}’ | tail -5

Jun 17 17:22:38 shs.

Jun 17 17:58:43 gdm.

Jun 17 18:09:58 shs.

Jun 19 12:57:36 shs.

Jun 19 12:58:44 nemo.

last

last命令可能最擅长查看所有用户或某一个用户的最近登录。记住一点:last首先显示最近的活动,因为这是大多数管理员最感兴趣的信息。

$ last | head -5

nemo pts/1 192.168.0.6 Fri Jun 19 12:58 still logged in

shs pts/0 192.168.0.6 Fri Jun 19 12:57 still logged in

shs pts/0 192.168.0.6 Wed Jun 17 18:10 - 18:42 (00:32)

reboot system boot 5.4.0-37-generic Wed Jun 17 17:58 still running

shs pts/2 192.168.0.6 Wed Jun 17 17:22 - 17:57 (00:34)

$ last nemo | head -5

nemo pts/1 192.168.0.6 Fri Jun 19 12:58 - 16:21 (03:22)

nemo pts/2 192.168.0.6 Sat Jun 13 17:49 - 19:05 (01:16)

nemo pts/1 192.168.0.6 Thu Jun 4 17:33 - 17:44 (00:10)

nemo pts/1 192.168.0.19 Mon May 11 19:04 - 19:57 (00:52)

nemo pts/1 192.168.0.19 Tue May 5 12:46 - 17:49 (05:02)

du

如果针对/home中的每个目录运行,du命令会报告每个用户的主目录在使用多少空间,就像这样:

$ sudo du -sk /home/*

289 /home/dorothy

116 /home/dory

88 /home/eel

28 /home/gino

28 /home/jadep

12764 /home/nemo

732 /home/shark

418046 /home/shs

108 /home/tadpole

默认情况下,报告的大小以1024字节为单位。

ps和history

针对当前登录的用户,您始终可以使用ps -ef | grep ^nemo之类的命令,查看用户目前在运行哪些命令和进程。想查看以前运行的命令,可以试着查看用户的历史记录文件(比如.bash_history),不过要注意,用户可以设置帐户,以便某些命令不被捕获到历史记录文件中,他们还可以编辑这些文件,如果选择这么做的话。

统计登录次数

如果您想查看自/var/log/wtmp文件上一次翻转以来每个用户登录的次数,可以使用这样的命令:

$ forUSERin `ls /home`

》 do

》 cnt=`last $USER | grep ^$USER | wc -l` # count logins

》 echo $USER: $cnt # show login count

》 done

输出会像是这样:

dorothy: 0

dory: 0

eel: 8

gino: 0

jadep: 102

nemo: 39

shark: 50

shs: 105

tadpole: 0

如果您想要更多的细节,可以创建一个较复杂的脚本,以便添加另外一些信息,比如登录细节和格式。

#!/bin/bash

sepline=“====================”

forUSERin `ls /home`

do

len=`echo $USER | awk ‘{print length($0)}’` # get length of username

echo $USER

sep=“${sepline:1:$len}” # set separator

echo $sep # print separator

cnt=`last $USER | grep ^$USER | wc -l` # count logins

echo logins: $cnt # show login count

last $USER | grep ^$USER | head -5 # show most recent logins

echo

done

上述脚本将显示的数据限制在最近的五次登录,但是您可以轻松改变。以下是一个用户的数据的格式会什么样:

shs

===

logins: 105

shs pts/0 192.168.0.6 Fri Jun 19 12:57 still logged in

shs pts/0 192.168.0.6 Wed Jun 17 18:10 - 18:42 (00:32)

shs pts/2 192.168.0.6 Wed Jun 17 17:22 - 17:57 (00:34)

shs pts/0 192.168.0.25 Wed Jun 17 17:20 - 17:57 (00:36)

shs pts/1 192.168.0.6 Wed Jun 17 15:19 - 17:57 (02:38)

检查企图使用sudo的情况

如果您想看看用户中有谁企图使用sudo、而他们本无这项权限,可以运行这样的命令:

$ grep “NOT in sudoers” /var/log/auth.log | awk ‘{print $6}’

nemo

如果您在无权提升权限的情况下试图使用sudo,而系统发出警告信息“用户名不在sudoers文件中。将报告该事件”,您可能会知道这个日志条目是该报告的精髓。除非管理员竭力寻找sudo使用违规,否则它们不会被人注意。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217980
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90884
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【精选活动】新老用户均可参加!回帖送好礼~

    为感谢电子发烧友们的支持与厚爱,即日开启新旧用户回馈活动,心动不如行动,一起来参与吧!活动要求一、新用户福利1)注册电子发烧友账号,并在本活动
    的头像 发表于 12-02 08:07 76次阅读
    【精选<b class='flag-5'>活动</b>】新老<b class='flag-5'>用户</b>均可参加!回帖送好礼~

    【有奖活动】回馈新老用户回帖送好礼!

    12月31日活动规则:新用户福利:注册电子发烧友账号,并在本活动回复 “领取新用户福利”,每日抽取5位回帖
    发表于 11-24 18:22

    【书籍评测活动NO.67】成为硬核Linux开发者:《Linux 设备驱动开发(第 2 版)》

    申请时间2025年11月17日——2025年12月21日活动参与方式1、在本帖下方留言回帖说说你想要这本书的理由15字以上。2、我们将从本帖留言者挑选赠送此书籍,共赠送3本。3、请在收到书籍后2个
    发表于 11-17 17:52

    斑马技术助力PouchNATION提升大型活动管理效率

    斑马技术公司宣布 PouchNATION 通过采用斑马技术的高性能扫描解决方案,显著提升其大型活动管理效率。
    的头像 发表于 11-04 16:15 405次阅读

    华纳云服务器Linux系统电源管理与节能优化配置方法

    与优化服务配置,可显著降低云服务器能耗,同时保障业务连续性,实现绿色计算与成本控制的双重目标。 Linux电源管理架构解析 现代云服务器Linux系统采用ACPI(高级配置与电源接口)作为底层
    的头像 发表于 08-21 15:09 596次阅读

    如何高效管理Linux服务器

    作为一名运维工程师,我们每天的工作是确保服务器的稳定运行、提高效率以及解决各种系统性问题。在繁忙的工作,如何提升管理Linux服务器的效率,成为了我们最关注的问题。幸运的是,自动化工具与脚本技术为我们提供了巨大的帮助,能够显著
    的头像 发表于 07-24 11:51 354次阅读

    Linux网络管理的关键技术和最佳实践

    在大型互联网企业Linux网络管理是运维工程师的核心技能之一。面对海量服务器、复杂网络拓扑、高并发流量,运维人员需要掌握从基础网络配置到高级网络优化的全套技术栈。本文将结合大厂实际场景,深入解析
    的头像 发表于 07-09 09:53 675次阅读

    详解Linux系统的服务管理

    Linux,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd脚本添加进去,不过此时它们并没有被启用。
    的头像 发表于 05-23 15:10 626次阅读
    详解<b class='flag-5'>Linux</b>系统<b class='flag-5'>中</b>的服务<b class='flag-5'>管理</b>

    【书籍评测活动NO.61】Yocto项目实战教程:高效定制嵌入式Linux系统

    扩展、自动化的构建工具集 。它采用模块化架构、分层构建体系和软件栈管理机制,使开发者能够高效定制、优化和维护嵌入式 Linux 系统,可提高开发效率并降低适配成本。 Yocto 项目已成为定制嵌入式
    发表于 05-21 10:00

    Linux系统管理的核心概念

    在前一篇文章,我们深入探讨了Linux的文件操作命令,如cp、mv、rm,以及文本处理命令grep、wc和管道符。本文将继续深入Linux系统
    的头像 发表于 05-15 17:05 492次阅读

    Linux权限管理基础入门

    Linux的广阔天空中,权限管理犹如一只翱翔的雄鹰,掌控着系统的安全与秩序。掌握Linux权限,不仅能让你的系统管理更加得心应手,还能有效防止未授权访问和数据泄露。本文将带你深入探索
    的头像 发表于 05-06 13:44 551次阅读
    <b class='flag-5'>Linux</b>权限<b class='flag-5'>管理</b>基础入门

    Linux系统进程管理入门指南

    Linux 系统,进程是正在运行的程序的实例。理解进程的管理、查看和控制对于系统管理员和开发者来说非常重要
    的头像 发表于 04-22 14:34 857次阅读
    <b class='flag-5'>Linux</b>系统进程<b class='flag-5'>管理</b>入门指南

    Linux的作用

    。 2、嵌入式系统:Linux可以被嵌入到各种嵌入式设备,如智能路由器、智能电视等。它提供了一个灵活的平台,可以根据设备的需求进行定制和优化。 3、个人电脑操作系统:Linux也可以作为个人电脑
    发表于 04-04 01:57

    Linux用户与创建

    Linux用户与创建 用户的类型 超级管理用户: 权限最高的
    的头像 发表于 12-20 14:24 1200次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>的<b class='flag-5'>用户</b>与创建

    高手Linux运维管理必备工具大全

    一、统一账号管理 1.LDAP 统一管理各种平台帐号和密码,包括但不限于各种操作系统(Windows、Linux),Linux系统sudo集成,系统
    的头像 发表于 12-18 10:03 950次阅读