在linux用户下查看当前用户或者历史用户的操作记录
一、查看及管理当前登录用户
1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:
- 用户名称
- 用户的机器名称或tty号
- 远程主机地址
- 用户登录系统的时间
- 空闲时间(作用不大)
- 附加到tty(终端)的进程所用的时间(JCPU时间)
- 当前进程所用时间(PCPU时间)
- 用户当前正在使用的命令
$ w 23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ramesh pts/0 10.1.80.56 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv] jason pts/1 10.20.48 23:01 2:53 0.01s 0.01s -bash john pts/2 10.1.80.7 23:04 0.00s 0.00s 0.00s w
此外,可以使用who am i查看使用该命令的用户及进程,使用who查看所有登录用户进程信息,这些查看命令大同小异;
2、使用pkill强制退出登录的用户
使用pkill可以结束当前登录用户的进程,从而强制退出用户登录,具体使用可以结合w命令;
首先:使用w查看当前登录的用户,注意TTY所示登录进程终端号
其次:使用pkill –9 -t pts/1 结束pts/1进程所对应用户登录(可根据FROM的IP地址或主机号来判断)
二、查看所有登录用户的操作历史
在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
通过在/etc/profile里面加入以下代码就可以实现:
PS1="`whoami`@`hostname`:"'[$PWD]'historyUSER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiif [ ! -d /tmp/dbasky ]thenmkdir /tmp/dbaskychmod 777 /tmp/dbaskyfiif [ ! -d /tmp/dbasky/${LOGNAME} ]thenmkdir /tmp/dbasky/${LOGNAME}chmod 300 /tmp/dbasky/${LOGNAME}fiexport HISTSIZE=4096DT=`date "+%Y-%m-%d_%H:%M:%S"`export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT"chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null
source /etc/profile 使用脚本生效
退出用户,重新登录
上面脚本在系统的/tmp新建个dbasky目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。
root@zsc6:[/tmp/dbasky/root]ls10.1.80.47 dbasky.2013-10-24_12:53:08root@zsc6:[/tmp/dbasky/root]cat 10.1.80.47 dbasky.2013-10-24_12:53:08
查看在12:53:08从10.1.80.47登录的root用户操作命令历史
在linux用户下查看当前用户或者历史用户的操作记录相关推荐
- linux防火墙状态查看/打开/关闭及端口/打开/关闭操作记录
防火墙:大体分为主机防火墙和网络防火墙. 主机防火墙:针对于单个主机进行防护. 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网. 网络防火墙和主机防火墙并不冲 ...
- linux 怎么查看系统用户,Linux系统下查看用户的常用方法
使用Linux系统时经常需要查看用户信息,除了cat /etc/passwd文件外,其实还有很多命令可以直接查看系统用户信息,下面总结一些Linux系统下查看用户的常用方法: id命令 功能:打印指定 ...
- linux 不小心删掉网卡配置文件的mac地址 如何恢复,linux/Centos下查看和修改网卡Mac地址(ifconfig命令)...
本文转载自http://www.169it.com/article/14360294838474691537.html eth0 Link encap:Ethernet HWaddr 00:e4:56 ...
- linux环境下查看系统安装时间、启动时间、运行时间
Linux环境下查看系统的安装时间.启动时间.运行时间 系统安装时间 查看root下系统安装记录的文件生成时间,可以约等于系统安装时间 系统启动时间 who -b查看系统最后一次系统启动开始的时间 w ...
- linux查看地址和,UNIX/LINUX平台下查看MAC和WWN地址的方法
归纳了一下,在UNIX/LINUX平台下查看MAC和WWN地址的方法 查看MAC地址 hp-ux #lanscan tru64 unix #netstat -ia aix #lsdev -Cc if ...
- Linux环境下查看IP不显示IPv4地址
Linux环境下查看IP不显示IPv4地址 问题 解决方法 额外方法 后续 问题 这篇文章记录一下,当我在虚拟机下运行Ubuntu时,想在我的windows下通过putty连接到Linux系统,但发现 ...
- Linux环境下查看网络性能的基本命令
Linux环境下查看网络性能的基本命令 由于Linux经常使用的是字符界面,而且Linux的功能比较强大,具有默认路由功能,相当于网关和路由器.在网络性能方面也比较稳 ...
- linux系统下查看cpu功耗,Linux系统下查看CPU信息
Linux系统下查看CPU信息 查看CPU信息(型号): # cat /proc/cpuinfo| grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon( ...
- linux系统下查看 显卡 信息
linux系统下查看 显卡 信息 命令:lspci |grep -i vga 如果是Nvidia显卡 1.基本命令:nvidia-smi nvidia-smi(The Nvidia System Ma ...
最新文章
- HttpClient+Jericho HTML Parser 实现网页的抓取
- kthread_run创建内核线程的原理
- ajax不执行_好程序员Java学习路线分享原生Ajax的使用
- 为什么越来越多的程序员开始学机器学习?揭秘一个重要原因
- SQL Server-外部联接基础回顾(十三)
- “一次编写,随处运行” Intel HTML5技术研讨会
- AND 0, Sum Big CodeForces - 1514B
- 在线MSN代码(如同QQ在线咨询那种的)
- java自带的jvm在哪里看_使用jdk工具查看jvm笔记
- 小区移动基站能否杀人于无形?
- 目前我们所说的个人商用计算机属于,计算机组成原理试题库(大专生用,共20份,有答案)...
- redis教程(七)之redis List
- 浅谈JSONP 的本质工作原理
- Process Monitor
- [导入]CLR探索系列:Server and Workstation Garbage Collection探索(垃圾回收系列)
- 数商云SCM供应链系统方案服务亮点:生产管理更智能、产业供应链协同管理更便捷
- 数字图像处理之数字图像频率空间
- 测度论与概率论基础学习笔记7——3.1积分的定义
- namecheap域名设置Cloudflare为第三方DNS
- 王菲给师父打电话拜年,受高人指点,她扶摇直上联手天王横扫歌坛