文档章节

Linux下记录用户操做日志

shaonbean
 shaonbean
发布于 2016/10/10 12:11
字数 273
阅读 27
收藏 0

注:此脚本直接执行即可

#!/bin/sbin

#functions:install cmd_track scripts
#date:2016-04-05
#auther:shaonbean
#set -x
# Check if user is root
   if [ $(id -u) -ne "0" ]; then
       echo "Error: You must be root to run this script, please use root to install "
       exit 1
   fi
#
cmd_path=/etc/profile.d
log_path=/etc/rsyslog.d
#
cat > $cmd_path/cmd.sh << 'EOF'
################################################
# cmd track
################################################
# CHANGELOG
#May 22, 2014  JY: * Initial Create
################################################


declare -x REAL_LOGNAME=`/usr/bin/who am i | cut -d" " -f1`
declare -x REAL_IP=`/usr/bin/who -u am i | awk '{print $NF}'|sed -e 's/[()]//g'`
if [ $USER == root ]; then
        declare -x PROMT="#"
  else
        declare -x PROMT="$"
fi


#if [ x"$SSH_USER" == x ]; then
#        declare -x REMOTE_USER=UNKNOW
#  else
#        declare -x REMOTE_USER=$SSH_USER
#fi


LAST_HISTORY="$(history 1)"
__LAST_COMMAND="${LAST_HISTORY/*:[0-9][0-9] /}"


declare -x h2l='
    THIS_HISTORY="$(history 1)"
    __THIS_COMMAND="${THIS_HISTORY/*:[0-9][0-9] /}"
    if [ "$LAST_HISTORY" != "$THIS_HISTORY" ];then
        __LAST_COMMAND="$__THIS_COMMAND"
        LAST_HISTORY="$THIS_HISTORY"
        logger -p local4.notice -i -t $REAL_LOGNAME $REAL_IP "[$USER@$HOSTNAME $PWD]$PROMT $__LAST_COMMAND"
    fi'
trap "$h2l" DEBUG
EOF
#####
if [ -d $log_path ];then
    echo "$log_path does exist"
  else 
    mkdir -p $log_path
fi
#
cat > $log_path/10-cmd_track.conf << 'EOF'
# Log nc_profile generated CMD log messages to file
local4.notice /var/log/cmd_track.log
#:msg, contains, "REM" /var/log/cmd_track.log


# Uncomment the following to stop logging anything that matches the last rule.
# Doing this will stop logging kernel generated UFW log messages to the file
# normally containing kern.* messages (eg, /var/log/kern.log)
& ~
EOF
#

/etc/init.d/rsyslog restart && source /etc/profile

脚本内容到此结束,结果演示:

 

© 著作权归作者所有

共有 人打赏支持
shaonbean
粉丝 0
博文 35
码字总数 57023
作品 0
徐汇
运维
私信 提问
Ubuntu Linux系统下的两个网络扫描工具  

Nbtscan---从Windows网络上收集NetBIOS信息 工具名称:nbtscan-1.5.1a 应用环境:Linux   工具介绍:这是一款用于扫描Windows网络上NetBIOS名字信息的程序。该程序对给出范围内的每一个地址...

JavaGG
2009/05/08
2.3K
1
Linux系统故障分析与排查,与解决

Linux系统故障分析与排查 在处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键。熟悉Linux系统的日志管理,了解常见故障的分析与解决办法...

cunlifang
2018/06/26
0
0
seci-log 1.01 发布,日志分析软件

这篇文章是 seci-log 开源日志分析软件发布了 http://www.oschina.net/news/61996/seci-log 的升级内容。版本号为1.01,我们在上次五种告警(非上班时间访问,非上班地点访问,密码猜测,账号...

赛克蓝德
2015/05/03
1K
6
两个linux内核rootkit--导语

曾经说过,linux由于其内秉的文件删除机制导致一旦发现有恶意代码很容易被清除掉,即使发现内核本身被感染也是很容易被清除掉,但是这并不能表示linux就是绝对安全的,这仅仅说明linux的补救...

晨曦之光
2012/04/10
198
0
Solaris、Sco 、Mac OS系统日志分析工具

Solaris、Mac OS系统日志分析工具 本文以PC服务器上常见的几种UNIX系统例如Solaris、Mac OS以及Sco Openserver系统为例如何在它们这些平台下查找系统日志。 一、用SMC分析系统日志 我们知道L...

OSSIM
2015/08/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

商品详情页上拉查看详情

商品详情页上拉查看详情 目录介绍 01.该库介绍 02.效果展示 03.如何使用 04.注意要点 05.优化问题 06.部分代码逻辑 07.参考案例 01.该库介绍 模仿淘宝、京东、考拉等商品详情页分页加载的UI效...

潇湘剑雨
27分钟前
1
0
Netty内存池之PoolArena详解

PoolArena是Netty内存池中的一个核心容器,它的主要作用是对创建的一系列的PoolChunk和PoolSubpage进行管理,根据申请的不同内存大小将最终的申请动作委托给这两个子容器进行管理。整体上,P...

爱宝贝丶
31分钟前
1
0
Django使用Channels实现WebSocket--下篇

希望通过对这两篇文章的学习,能够对Channels有更加深入的了解,使用起来得心应手游刃有余 通过上一篇《Django使用Channels实现WebSocket--上篇》的学习应该对Channels的各种概念有了清晰的认...

运维咖啡吧
39分钟前
2
0
linux下设置定时执行shell脚本的示例

很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command...

阿锋zxf
42分钟前
3
0
介绍Kubernetes监控Heapster

什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS,Kubernetes有个出名的监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机...

xiangyunyan
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部