精华内容
下载资源
问答
  • 随着时代的发展,我们生活中了解计算机的越来越多,黑客...下面的内容设置可以实现在Linux下所有用户,不管是远程还是本地登陆,在本机的所有操作都会记录下来,并生成包含“用户/IP/时间/操作指令”的文件存放在指...

     随着时代的发展,我们生活中了解计算机的越来越多,黑客也越来越多;为了安全起见,我们需要记录所用户的登录及操作日志;我们需要清楚服务器上每个用户登录后都做了哪些操作,我们需要记录下每个用户的操作命令。

    下面的内容设置可以实现在Linux下所有用户,不管是远程还是本地登陆,在本机的所有操作都会记录下来,并生成包含“用户/IP/时间/操作指令”的文件存放在指定位置。

    1、添加以下信息到/etc/profile文件里

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    ################## 记录信息开始 ####################
    #history
    export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
    USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
    HISTDIR=/var/log/.hist   ###日志存放路径
    if [ -z $USER_IP  ]
    then
      USER_IP=`hostname`
    fi
    if [ ! -d $HISTDIR ]
    then
       mkdir -p $HISTDIR
       chmod 777 $HISTDIR
    fi
    if [ ! -d $HISTDIR/${LOGNAME} ]
    then
        mkdir -p $HISTDIR/${LOGNAME}
        chmod 300 $HISTDIR/${LOGNAME}
    fi
    export HISTSIZE=4096
    DT=`date +%Y%m%d_%H%M%S`
    export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"   ###日志生成格式,保持默认
    chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null
    ########################## 结束 ############################


    2、使用配置生效 

    1
    # source /etc/profile


    3、退出重启登录后查看生成的日志信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [root@localhost ~]# cd /var/log/.hist/root/
    [root@localhost root]# ls
    192.168.206.1.hist.20170604_085436
    [root@localhost root]# cat 192.168.206.1.hist.20170604_085436 
    #1496537687
    cd /var/log/.hist/
    #1496537688
    ls
    #1496537690
    cd root/
    #1496537691
    ls
    #1496537692
    ll
    #1496537695
    exit

     

    4、小技巧:正常格式查看日志信息

    1
    2
    3
    4
    5
    6
    [root@localhost root]# export HISTFILE=/var/log/.hist/root/192.168.206.1.hist.20170604_085436
    [root@localhost root]# history 
        1  [2017.06.04 08:55:04]cd /var/log/.hist/root/
        2  [2017.06.04 08:55:05]ls
        3  [2017.06.04 08:55:10]cat 192.168.206.1.hist.20170604_085436 
        4  [2017.06.04 08:55:31]#history


    至此,所有操作就已经完成了。如有问题请联系:DBA_Master@163.com




         本文转自yangxuncai110 51CTO博客,原文链接:http://blog.51cto.com/zlyang/1933865,如需转载请自行联系原作者



    展开全文
  • Linux 记录所有用户登录和操作的详细日志

    分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

                   

     

     

     

    1、起因

     

    最近linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录。

     

    一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址、操作时间、操作用户等。

     

    所以我们不得不自己写代码来实现这样的功能。

     

    2、自动记录脚本

    编写脚本如下:

    history

     

    USER=`whoami`

     

    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 /var/log/history ]; then

     

    mkdir /var/log/history

     

    chmod 777 /var/log/history

     

    fi

     

    if [ ! -d /var/log/history/${LOGNAME} ];  then

     

    mkdir /var/log/history/${LOGNAME}

     

    chmod 300 /var/log/history/${LOGNAME}

     

    fi

     

    export HISTSIZE=4096

     

    DT=`date +"%Y%m%d_%H:%M:%S"`

     

    export  HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"

     

    chmod 600  /var/log/history/${LOGNAME}/*history* 2>/dev/null

     

    这个脚本需要放在/etc/profile文件的末尾。这里默认写了记录日志文件的根目录是:/var/log/history,这个目录需要初始化建立,然后通过“exportHISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"

    ”可以看到记录日志的路径是/var/log/history/${LOGNAME},所以这个目录也需要事先建立,有多少个用户,就要建立多少个目录,而且要把目录的使用权限赋予相对应的用户。

     

    而每次用户登录到退出都会产生以用户名、登录ip地址、操作时间为文件名的文件,文件里面包含本次用户的所有操作记录。

     

    3、建立初始化目录

    先去/home查看有多少个用户

    [root@azure_test_static1_11_35 history]#  ll

     

    total 28

     

    drwxr-xr-x 2 adminuser adminuser 4096 Nov  17 21:53 adminuser

     

    drwxr-xr-x 2 fastdfs   fastdfs    4096 Nov 17 21:53 fastdfs

     

    drwxr-xr-x 2 loguser   loguser    4096 Nov 17 19:43 loguser

     

    drwxr-xr-x 2 nginx     nginx      4096 Nov 17 20:54 nginx

     

    d-wx------ 2 root      root      4096 Nov 17 21:53 root

     

    drwxr-xr-x 2 tomcat    tomcat     4096 Nov 17 19:42 tomcat

     

    drwxr-xr-x 2 zabbix    zabbix     4096 Nov 17 19:42 zabbix

     

    [root@azure_test_static1_11_35 history]#

     

     

    然后开始建立初始化目录

    [root@azure_test_static1_11_35 log]#  mkdir /var/log/history/fastdfs

     

    [root@azure_test_static1_11_35 history]#  chown fastdfs:fastdfs fastdfs -R

     

    [root@azure_test_static1_11_35 log]#  mkdir /var/log/history/tomcat

     

    [root@azure_test_static1_11_35 log]# chown  -R tomcat:tomcat /var/log/history/tomcat

     

    [root@azure_test_static1_11_35 log]#  mkdir /var/log/history/zabbix

     

    [root@azure_test_static1_11_35 log]#  chown -R zabbix:zabbix /var/log/history/zabbix

     

    [root@azure_test_static1_11_35 log]#  mkdir /var/log/history/loguser

     

    [root@azure_test_static1_11_35 log]#  chown -R loguser:loguser /var/log/history/loguser

     

    [root@azure_test_static1_11_35 log]#  mkdir /var/log/history/adminuser

     

    [root@azure_test_static1_11_35 log]#  chown -R adminuser:adminuser /var/log/history/adminuser    

     

     

     

     

     

    4、用户登录验证

    用其中一个用户fastdfs登录进程操作

    [adminuser@azure_test_static1_11_35 ~]$  sudo -i

     

    [sudo] password for adminuser:

     

    [root@azure_test_static1_11_35 ~]# su -  fastdfs

     

    [fastdfs@azure_test_static1_11_35 ~]$ cp  test1.log test3.log

     

    [fastdfs@azure_test_static1_11_35 ~]$  echo "test 1"> test3.log

     

    [fastdfs@azure_test_static1_11_35 ~]$  echo "1" >> test3.log

     

    [fastdfs@azure_test_static1_11_35 ~]$  echo "2" >> test3.log

     

    [fastdfs@azure_test_static1_11_35 ~]$  echo "3" >> test3.log

     

    [fastdfs@azure_test_static1_11_35 ~]$  more test3.log

     

    test 1

     

    1

     

    2

     

    3

     

    [fastdfs@azure_test_static1_11_35 ~]$

     

    然后退出用户,重新登录进去日志目录/var/log/history/fastdfs/查看有最新的记录,一次用户登录到退出就会保存成一个日志文件记录:

    # 进入日志目录

     

    [root@azure_test_static1_11_35 fastdfs]#  cd /var/log/history/fastdfs/

     

    # 查看有2个操作日志记录

     

    [root@azure_test_static1_11_35 fastdfs]#  ll

     

    total 8

     

    -rw------- 1 fastdfs fastdfs  83 Nov 17 21:53  fastdfs@192.168.120.103_20161117_21:53:16

     

    -rw------- 1 fastdfs fastdfs 139 Nov 17  21:59 fastdfs@192.168.120.103_20161117_21:56:47

     

    # 打开当前的操作记录日志

     

    [root@azure_test_static1_11_35 fastdfs]#  more fastdfs@192.168.120.103_20161117_21:56:47

     

    cp test1.log test3.log

     

    echo "test 1"> test3.log

     

    echo "1" >> test3.log

     

    echo "2" >> test3.log

     

    echo "3" >> test3.log

     

    more test3.log

     

    exit

     

    [root@azure_test_static1_11_35 fastdfs]#

     

     

    PS:可以看到记录的日志和我们的实际操作保持一致。证明我们要的功能实现了。

     

    参考文章:http://www.heminjie.com/system/linux/412.html

               

    分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • Linux记录用户操作

    2019-11-29 10:29:35
    Linux记录所有用户操作记录,包括操作日期、用户名、登录IP地址、具体操作等信息; 1、在/etc/profile下增加下面内容即可: #history 记录用户操作 USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed ...

    Linux记录所有用户操作记录,包括操作日期、用户名、登录IP地址、具体操作等信息;

    1、在/etc/profile下增加下面内容即可:

    #history 记录用户操作

    USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
    export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}]"
    HISTDIR=/var/log/.history
    if [ -z $USER_IP ]
    then
            USER_IP=`hostname`
    fi

    if [ ! -d $HISTDIR ]
    then
            mkdir -p $HISTDIR
            chmod 777 $HISTDIR
    fi

    if [ ! -d $HISTDIR/${LOGNAME} ]
    then
            mkdir -p $HISTDIR/${LOGNAME}
            chmod 300 $HISTDIR/${LOGNAME}
    fi
    export HISTSIZE=4096
    DT=`date "+%Y%m%d_%H:%M:%S"`
    export PROMPT_COMMAND="history -a"
    export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}@$DT"
    chmod 600 $HISTDIR/${LOGNAME}/*@* 2>/dev/null/

     

    2、刷新配置

    source /etc/profile

     

    3、进入日志目录下查看

    cd $HISTDIR/${LOGNAME}

    展开全文
  • linux系统中想要记录所有登录过当前系统的用户操作,排查有人对当前系统做的何种操作导致系统问题,可以按照如下方法进行。 前言 在描述操作步骤之前,先说一下系统环境变量的相关配置文件 ~/.bashrc和~/.bash_...

    在linux系统中想要记录所有登录过当前系统的用户操作,排查有人对当前系统做的何种操作导致系统问题,可以按照如下方法进行。

    前言

    在描述操作步骤之前,先说一下系统环境变量的相关配置文件

    • ~/.bashrc~/.bash_file,这两个文件是当前用户shell下生效的环境变量配置文件。修改完成之后需要source 一下对应的配置
    • /etc/profile/etc/bashsrc是全局变量。修改完成后所有的用户shell都会生效,这里我们改动的主要是/etc/profile这个文件,它有一个文件夹/etc/profile.d目录,其中也是对应的脚本,可以配置定制的环境变量脚本
      查看/etc/profile其中一段代码
      for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do #从/etc/profile.d目录下取出文件
      if [ -r "$i" ]; then  # 判断是否可执行
          if [ "${-#*i}" != "$-" ]; then #判断是否为交互式脚本,${-#*i}用来输出脚本类型,如果$-为交互式脚本类型(echo $-输出包含字母i)
              . "$i" #是非交互脚本,不需要查看或者输入任何信息,即可直接执行
          else
              . "$i" >/dev/null #否则重定向到空,即不执行
          fi
      fi
      done
      
      关于交互脚本和非交互脚本的详细描述可以参考博文 https://blog.csdn.net/gui951753/article/details/79154496

    实现

    针对/etc/profile.d中脚本的执行方式,可以自己编写实现记录所有用户操作记录的脚本get_all_user.sh ,将该脚本放入到/etc/profile.d文件夹下,并source /etc/profile即可生效
    该脚本在用户退出之后会在/tmp/baron目录下生成用户名的文件夹,并在该文件夹下生成对应的登录ip以及时间为文件名的用户操作记录文件

    #get the operation of users on the server
    
    #设置终端显示符
    #root@[/tmp/baron/]#
    user=`whoami`
    if [ "$user" == "root" ];then
            PS1="`whoami`@"'[$PWD]#'
    else
            PS1="`whoami`@"'[$PWD]$'
    fi
    
    #HISTFILE的记录方式是在用户退出后将history中的缓存写入到HISTFILE中
    history
    
    #获取登录用户ip
    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/baron ];then
            mkdir /tmp/baron
            chmod 777 /tmp/baron
    fi
    if [ ! -d /tmp/baron/${LOGNAME} ];then
            mkdir /tmp/baron/${LOGNAME}
            chmod 300 /tmp/baron/${LOGNAME}
    fi
    
    #设置history可以记录命令的文件大小
    export HISTSIZE=8192
    DT=`date "+%Y-%m-%d_%H:%M:%S"`
    export HISTFILE="/tmp/baron/${LOGNAME}/${USER_IP}.baron.$DT"
    export HISTTIMEFORMAT="%F %T "
    
    #只有root对该目录下所有文件有读写权限,防止其他用户改动
    chmod 600 /tmp/baron/${LOGNAME}/*baron* 2>/dev/null
    

    生成如下记录,可以看到有具体的登录设备ip以及对应的用户,文件中为用户的具体操作记录。非常直观
    在这里插入图片描述

    参考博文:
    深入浅出理解交互式shell和非交互式shell、登录shell和非登录shell的区别 https://blog.csdn.net/gui951753/article/details/79154496
    linux命令h—history https://blog.csdn.net/qq_23929673/article/details/97308965

    展开全文
  • 记录所有用户登录系统的任何操作日志,以便有据可查。 1.编辑/etc/profile文件。 #vim /etc/profil 2. 在其后添加如下内容 history USER=`whoami` USER_IP=`who -u am i 2>/dev/null| ...
  • 记录所有用户登录系统的任何操作日志,以便有据可查。并且符合相关等保要求 1.编辑 /etc/profile文件。 vim /etc/profil 2. 在其后添加如下内容 history USER=`whoami` USER_IP=`who -u am i 2>/...
  • 记录所有用户登录系统的任何操作日志,以便有据可查。 1.编辑 /etc/profile文件 vim /etc/profile history USER=`whoami` USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if ...
  • linux记录所有用户的操作命令

    千次阅读 2018-12-29 15:44:06
    1.在/etc/profile加入如下脚本 PS1="`whoami`@`hostname`...注:用户退出shell时记录。 历史命令存在 /tmp/history文件夹下,每个用户一个文件夹。 root@iZuf6fwiezrs7chtrxmnufZ:/tmp/history# ls hecj root
  • 1、背景描述最近有需求,客户有服务器被登录,不知道谁登录的,操作了什么命令,historylinux通常会用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,...
  • linux 记录用户操作

    2019-09-22 01:00:27
    上面脚本在系统的/var/log/.history下新建个history目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个 vim /etc/...
  • 这个脚本是在网上找到的,稍微做了一些修改,可以实现在Linux下所有用户,不管是远程还是本地登陆,在本机的所有操作都会记录下来,并生成包含“用户/IP/时间”的文件存放在指定位置,方便管理员以后查看不同用户都...
  • 一:配置调试 1.创建用户审计文件存放目录和审计日志文件 ; mkdir -p /var/log/usermonitor/ 2.创建用户审计日志文件;...3.将日志文件所有者赋予一个最低权限的用户; chown nobody:nobody /var/log/usermonitor...
  • 在/etc/profile文件里加入如下语句:1)使用script记录UID大于500的用户的所有操作,类似屏幕截图  if [ $UID -gt 500 ] then  exec /usr/bin/script -t 2>/tmp/$USER-$UID-$(date +%Y%m%d%H%M)....
  • 一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整;所以误操作而造成重要的数据丢失,就很难查到是谁操作的。在这里我们通过脚本...
  • Linux记录所有用户的登录和操作日志 一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整;所以误操作而造成重要的数据丢失...
  • 按登录IP记录Linux所有用户操作日志

    千次阅读 2014-11-07 00:56:28
    Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了。以下方法可以实现通过记录登陆IP地址和所有用户登录所操作的日志记录...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,214
精华内容 885
关键字:

linux记录所有操作

linux 订阅