转载 http://ruilinux.blog.51cto.com/4265949/845405 
今天一台线上的服务器不知道被哪个活宝执行了chmod -R 700 /home,造成了文件权限不对,密钥认证就读不到密钥了,所有人账户都登陆不上服务器了。排查了一下原因,排除了安全问题。那剩下的就是同事的误操作了。但是!!!! chmod -R 执行这个可是很让人怀疑的!!!于是报着试一试的心态去last ,然后history。其实这时候通过查看历史记录查是没有什么意义了。笨蛋执行了命令之后还留着,肯定history -c 了、果然,全部查完了,依然不知道没有查出来是谁,有几个人历史命令就几条,这种也没法问,问也白问。
算了,这次反正没有丢什么重要的数据,服务器也没什么事情。饶恕了这个大神吧。但是,万一下次又有人误操作了怎么办,有一天因为某人误操作了删除了重要的数据怎么办..
现在从两个方面入手,第一服务器安装第三方记录工具,可以记录登陆的每个用户操作的日志,第二结合行政手段,最好有相关的规章制度,如果你是运维部的老大,可以定下。有奖有法。起到一个警示的作用。
查阅了下相关资料,还是下面这个方法好:
标题: 在/etc/profile中写一个shell脚本来记录登陆后的IP地址和某用户名所操作的历史记录!!!
PS1="`whoami`@`hostname`:"'[$PWD]' (Linux系统提示符是用系统变量PS1来定义的)
history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` (who -u am i 会显示系统中登陆进来的用户及登陆从哪个IP登陆进来的,这里后面过滤了就取值一个登陆进来的IP)
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/ruige ]
then
mkdir /tmp/ruige
chmod 777 /tmp/ruige
fi
if [ ! -d /tmp/ruige/${LOGNAME} ]
then
mkdir /tmp/ruige/${LOGNAME}
chmod 300 /tmp/ruige/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date '+%Y:%m:%d %r'`
export HISTFILE="/tmp/ruige/${LOGNAME}/${USER_IP} ruige.$DT"
chmod 600 /tmp/ruige/${LOGNAME}/*ruige* 2>/dev/null
   
会在系统的/tmp新建个ruige目录,在目录中记录了所有的登陆过系统的用户和IP地址,还有历史命令!我们还可以用这个方法来监测系统的安全性。
注意:最好再给ruige这个目录建议你加个t位!!
chmod o+t  ruige 或者chmod o+t  ruige
补充知识点:
一:linux系统中who am i 和whoami的区别!
  who am i 显示的是实际用户ID即用户登陆的时候的用户ID!!
  whoami 显示的是有效用户ID.!!!


但在大多数情况下,实际用户ID和有效用户ID是一致的。
  如
  login:root
  Pssword:
  $who am i
  root pts/0 2007-08-16 13:16 (:0.0)
  $whoami
  root
  当切换用户后:
  su   tongrui
  #who am i
  root pts/0 007-08-16 13:16 (:0.0)
  #whoami
  tongrui
  也可以说who am i 显示的是切换用户前的实际登陆的用户ID,whoami是切换后的有效的用户ID,此时此终端具有切换后用户的访问权限,如本文中切换后则具有超级用户的访问权限。
who am i 和whoami有何区别?
首先要说明uid和euid(effective user id)的区别。uid就是你login的时候使用的id,而euid则是你当前的有效id。因为登录后我们可以使用su切换用户身份,所以uid和euid可能是不同的,程序在运行的时候一般看的都是euid,当然也有特出的,who am i就是一个。
举个例子:用户用root登陆,使用su变成tongrui,用who am i看到的是root,使用whoami命令看到的是tongrui。

who am i与whoami的区别: 
1.whoami显示effective current username(即通过su username1之后,
显示的是username1);
2.who am i显示的是original username(即在使用su命令之前的username).

转载于:https://blog.51cto.com/kexl908/883860

shell脚本自动记录登陆后 的IP地址和历史记录相关推荐

  1. centos7 shell 获取ip_Linux Shell脚本中获取本机ip地址方法

    方法一:ifconfig -a ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "a ...

  2. Shell脚本中获取本机ip地址,Linux获取本地ip地址

    在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 ...

  3. 编写一个shell脚本程序,检测指定IP地址的主机是否在线

    编写一个脚本程序,检测指定IP地址的主机是否在线,如果在线则显示输出Online,否则输出Offline checkhost.sh [root@exam ~]# cd scripts [root@ex ...

  4. Shell脚本中获取本机ip地址

    1.单网卡 方法1: #!/bin/sh local_ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2} ...

  5. shell脚本实现批量解析域名IP地址(支持多DNS)

    脚本介绍 多DNS解析(目前支持最多3个目标DNS服务器) 支持解析域名的A记录和CNAME记录 自定义DNS,内网DNS服务器,或公网DNS 多域名同时从目标DNS解析记录(脚本从文本读取域名列表) ...

  6. Linux的shell脚本实战之检查主机IP是否存在

    Linux的shell脚本实战之检查主机IP是否存在 一.目的及要求 二.脚本内容 二.运行结果 一.目的及要求 二.脚本内容 二.运行结果 一.目的及要求 检查 192.168.200.130~14 ...

  7. php shell地址,运用Shell 命令行获得本机IP地址

    运用Shell 命令行获得本机IP地址 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址,不需要 ...

  8. 编写shell脚本扫描出局域网所有ip设备的mac地址

    用linux四剑客和arping编写shell脚本,实现扫描出局域网所有ip设备的mac地址: 1.你要安装了arping 2.要有ifconfig命令(manjaro就没有,manjaro是ip a ...

  9. linux shell 自动应答y,Shell脚本SSH登陆自动应答

    Expect解释器协助Shell脚本实现SSH登陆自动应答,需要安装expect解释器来解释该脚本.只写了密码登陆方式自动应答,该脚本不支持密钥登陆自动应答 #!/usr/bin/expect -f ...

最新文章

  1. 一种使用GDI+对图片尺寸和质量的压缩方法
  2. Gartner发布对2022年及以后IT组织和用户的十大预测
  3. 扫描线算法-求线段交点数量
  4. 【转】各种媒体数据以 base64 编码方式直接嵌入网页中的写法
  5. 【Git】Git-常用命令备忘录(二)
  6. 虚拟内存管理习题补充
  7. openstack 教程_OpenStack的新提示,技巧和教程
  8. 遥感影像处理有高招,“专治”各类花式并发的述求!
  9. 推荐一款wordpress个人博客主题,中文版主题
  10. SQL Server置疑数据库解决方法
  11. 实验室虚拟仿真建设之技术选型剖析
  12. python中seek方法_python文件操作及seek偏移详解
  13. 【高数】Abel定理,幂级数的和收敛半径,不同幂级数收敛半径的比较,缺项幂级数的解法
  14. NetLimiter Pro
  15. Kong Rate Limiting 插件详解
  16. 计算机系统如何禁止文件删除功能,Win7如何禁止在C盘上安装软件?|win7系统c盘哪些文件是可以删除的...
  17. 又是一年推gal季(牛客OI周赛5-提高组)
  18. Parameter 'arg0' not found. Available parameters are [xxx, xxx, param1, param2]
  19. 关于office2013打开后始终显示正在配置问题的解决方案集锦
  20. php保存文件快捷键,word保存快捷键是ctrl加什么

热门文章

  1. Ubuntu16.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)
  2. Java程序员从笨鸟到菜鸟之(五十二)细谈Hibernate(三)Hibernate常用API详解及源码分析--csdn 曹胜欢...
  3. SSH登录忽然变慢与DNS反向解析问题处理
  4. cdoj 题目简单分类
  5. mysqldiff对比主从表结构是否一致
  6. c语言循环练习[xcode]
  7. 【枚举】【二分答案】【分块答案】【BFS】【最大流】【Dinic】bzoj1189 [HNOI2007]紧急疏散evacuate...
  8. 在eclipse里的 flex 没有可视化的编辑
  9. 来自Mozilla的CSS书写规范建议
  10. Channel延续篇