查看所有登录用户的操作历史

1)查看及管理当前登录用户
使用w命令查看当前登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及它们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:
-> 用户名称
-> 用户的机器名称或tty号
-> 远程主机地址
-> 用户登录系统的时间
-> 空闲时间(作用不大)
-> 附加到tty(终端)的进程所用的时间(JCPU时间)
-> 当前进程所用时间(PCPU时间)
-> 用户当前正在使用的命令

[root@test ~]# w
13:54:14 up 2 days, 2:53, 4 users, load average: 0.02, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Mon11 3:44m 0.11s 0.06s -bash
test pts/0 172.16.255.202 10:11 1:48m 0.11s 0.03s vim userinfo.text
nanli pts/3 172.16.255.196 12:01 1:52m 0.00s 0.00s -bash
work pts/4 172.116.55.13 12:08 0.00s 0.02s 0.00s w

此外,可以使用"who am i"查看使用该命令的用户及进程,使用who查看所有登录用户进程信息,这些查看命令大同小异;

2、使用pkill强制退出登录的用户

使用pkill可以结束当前登录用户的进程,从而强制退出用户登录,具体使用可以结合w命令;
-> 使用w查看当前登录的用户,注意TTY所示登录进程终端号
-> 使用"pkill –9 -t TTY终端号" 结束该进程所对应用户登录(可根据FROM的IP地址或主机号来判断)
[root@test ~]# pkill -9 pts/4
[root@test ~]# w
13:59:23 up 2 days, 2:56, 4 users, load average: 0.02, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Mon11 3:44m 0.11s 0.06s -bash
test pts/0 172.16.255.202 10:11 1:48m 0.11s 0.03s vim userinfo.text

2)查看所有登录用户的操作历史
在Linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录。可是假如一台服务器多人登陆,一天因为某人误操作了删除
了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么
办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案肯定是有的!

通过在/etc/profile文件底部添加以下代码就可以实现:
[root@test ~]# cat /etc/profile

#设置历史记录显示的内容
HISTFILESIZE=4000 #默认保存命令是1000条,这里修改为4000条
HISTSIZE=4000
USER_IP=who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g' #取得登录客户端的IP
if [ -z $USER_IP ]
then
USER_IP=hostname
fi
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S $USER_IP whoami "
source /etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值