这篇“Linux用户行为分析的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux用户行为分析的方法是什么”文章吧。

finger命令

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

$fingernemoLogin:nemoName:NemoDemoDirectory:/home/nemoShell:/bin/bashOnsinceFriJun1912:58(EDT)onpts/1from192.168.0.67minutes47secondsidleNewmailreceivedWedJun1718:312020(EDT)UnreadsinceSatJun1318:032020(EDT)NoPlan.

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

nemo:x:1001:1001:NemoDemo,11,540-222-2222,540-333-3333:/home/nemo:/bin/bash).

上面的输出还表明nemo没有“计划”,但这只是意味着该用户没有创建.plan文件、并将一些文本放入其中。 这并不罕见。如果没有参数,finger将以如下所示的格式显示当前登录列表。 您可以看到他们何时登录、从哪个IP地址登录、使用中的伪终端(比如pts/1)以及闲置了多久。

$fingerLoginNameTtyIdleLoginTimeOfficeOfficePhonenemoNemoDemopts/11:24Jun1912:58(192.168.0.6)shsSandraHenry-Stockerpts/0Jun1912:57(192.168.0.60w命令

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

$w14:23:19up1day,20:24,2users,loadaverage:0.00,0.00,0.00USERTTYFROMLOGIN@IDLEJCPUPCPUWHATshspts/0192.168.0.612:570.00s0.14s0.01swnemopts/1192.168.0.612:581:24m0.03s0.03s-bashid命令

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

$iduid=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)$idnemouid=1001(nemo)gid=1001(nemo)groups=1001(nemo),16(fish)auth.log

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

$grep"Newsession"/var/log/auth.log|awk'{print$1,$2,$3,$11}'|tail-5Jun1717:22:38shs.Jun1717:58:43gdm.Jun1718:09:58shs.Jun1912:57:36shs.Jun1912:58:44nemo.last命令

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

$last|head-5nemopts/1192.168.0.6FriJun1912:58stillloggedinshspts/0192.168.0.6FriJun1912:57stillloggedinshspts/0192.168.0.6WedJun1718:10-18:42(00:32)rebootsystemboot5.4.0-37-genericWedJun1717:58stillrunningshspts/2192.168.0.6WedJun1717:22-17:57(00:34)$lastnemo|head-5nemopts/1192.168.0.6FriJun1912:58-16:21(03:22)nemopts/2192.168.0.6SatJun1317:49-19:05(01:16)nemopts/1192.168.0.6ThuJun417:33-17:44(00:10)nemopts/1192.168.0.19MonMay1119:04-19:57(00:52)nemopts/1192.168.0.19TueMay512:46-17:49(05:02)du命令

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

$sudodu-sk/home/*289/home/dorothy116/home/dory88/home/eel28/home/gino28/home/jadep12764/home/nemo732/home/shark418046/home/shs108/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`#countlogins>echo$USER:$cnt#showlogincount>done

输出会像是这样:

dorothy:0dory:0eel:8gino:0jadep:102nemo:39shark:50shs:105tadpole:0

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

#!/bin/bashsepline="===================="forUSERin`ls/home`dolen=`echo$USER|awk'{printlength($0)}'`#getlengthofusernameecho$USERsep="${sepline:1:$len}"#setseparatorecho$sep#printseparatorcnt=`last$USER|grep^$USER|wc-l`#countloginsechologins:$cnt#showlogincountlast$USER|grep^$USER|head-5#showmostrecentloginsechodone

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

shs===logins:105shspts/0192.168.0.6FriJun1912:57stillloggedinshspts/0192.168.0.6WedJun1718:10-18:42(00:32)shspts/2192.168.0.6WedJun1717:22-17:57(00:34)shspts/0192.168.0.25WedJun1717:20-17:57(00:36)shspts/1192.168.0.6WedJun1715:19-17:57(02:38)检查企图使用sudo的情况

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

$grep"NOTinsudoers"/var/log/auth.log|awk'{print$6}'nemo

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

以上就是关于“Linux用户行为分析的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。