重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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. 在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录, 可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
通过在/etc/profile里面加入以下代码就可以实现:
PS1="`whoami`@`hostname`:"'[$PWD]'
history
USER_IP=`who -u am i 2/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`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]ls
10.1.80.47 dbasky.2013-10-24_12:53:08
root@zsc6:[/tmp/dbasky/root]cat 10.1.80.47 dbasky.2013-10-24_12:53:08
查看在12:53:08从10.1.80.47登录的root用户操作命令历史
1History命令语法: [test@linux]# history [n] [test@linux]# history [-c] [test@linux]# history [-raw] histfiles 参数: n :数字,要列出最近的 n 笔命令列表 -c :将目前的shell中的所有 history 内容全部消除 -
不很明白您的问题。Linux下每个用户用他们各自的用户名登录,每个用户名下都有.bash_history(除非该用户或Admin另外设置),所以每个用户只会看到自己的history,而Admin只要去不同的用户下看该用户的.bash_history文件,就知道该用户的历史。
如果您的用户都是共用同一个用户名,那就很难查了。
方法步骤如下:
1、首先打开linux客户端。
2、使用鼠标点击连接linux按钮。
3、在弹出的界面内输入用户名,主机ip地址。
4、再在弹出的界面内输入密码。
5、最后在界面内输入history命令,即可成功显示全部的linux的history指令历史记录。
通过键盘上的方向键↑和方向键↓来快速找到最近的几次输入命令。比如我们依次输入了以下几个命令:cd cm5 ls cd .. ls pwd这几个命令
当我们输入方向键↑的时候会看到之前的一个命令pwd。这样就不用再输入命令了。
当我们再按下方向键↑的时候,我们会看到之前的倒数第二个命令ls。依次类推,可以一直往前找。而方向键↓可以往后找。
如果要找的命令需要按↑键很多次的时候,就不太方便了,这时候我们可以用history命令来查看。
history命令默认会查看最近的所有命令,如果我们只想看最近的几条命令,可以使用history 数字的形式。
当然history可以配合grep命令使用,如果想查看最近的命令中包含cd的命令,可以使用history|grep cd
如果我们想执行历史记录中的第83个命令,cd /etc/yum.repos.d,我们可以将此命令复制,粘贴执行。也可以采用如下方式:!83
1、当前登录用户信息
who:
用户名、终端类型、登陆日期以及远程主机地址。
who /var/log/wtmp
可以查看自从wtmp文件创建以来的每一次登陆情况
-H:打印每列的标题
users命令: 打印当前登录的用户,从上面可以看到我自己从不同主机同时登录,所以下面显示2次。
2、查看命令历史
每个用户的命令历史记录保存在 ~/.bash_history 文件里,
或者在终端输入: history
要想再执行哪条,使用 !96 重新执行该条命令。
3、last命令查看用户登录历史
此命令会读取 /var/log/wtmp文件;/var/log/btmp可以显示远程登陆信息。
last默认打印所有用户的登陆信息。
如果想打印某个用户的登陆信息,可以使用
last 用户名
一些选项:
(1)-x:显示系统开关机以及执行等级信息
(2)-a:将登陆ip显示在最后一行
(3)-d:将IP地址转换为主机名
(4)-t:查看指定时间的用户登录历史
例如: 查看axing在
axing@ax:~$ last axing -a -t 20190201160000
4、lastlog命令查看所有用户最近一次登录历史
读取/var/log/lastlog文件;用户排列顺序按照/etc/passwd中的顺序
一些选项:
(1) -u:查看某用户的最后一次登录记录
比如: lastlog -u axing
(2) -t:查看最近几天之内的用户登录历史
比如: lastlog -t 1
查看最近1天之内的登陆历史
(3) -b:查看指定天数之前的用户登录历史
例如: lastlog -b 60
查看60天之前的用户登录历史
5、ac命令
根据/var/log/wtmp文件中的登陆和退出时间报告用户连接的时间(小时),默认输出报告总时间
需要安装:
(1)-p:显示每个用户的连接时间
(2)-d:显示每天的连接时间
(3)-y:显示年份,和-d配合使用