linux记录每个用户执行的命令
1.在/etc/profile中添加如下代码:
#history
USER_IP=`who -u am i >/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod $HISTDIR/${LOGNAME}
fi
export HISTSIZE=
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod $HISTDIR/${LOGNAME}/*.history* 2>/dev/null
2.在/etc/bashrc中添加如下代码:
#history
USER_IP=`who -u am i >/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTFILESIZE=
HISTSIZE=
HISTTIMEFORMAT="%F %T ${USER_IP} `whoami` "
export HISTTIMEFORMAT
最终效果:

这段脚本的作用是把每个用户执行的命令记录在/usr/share/.history下以用户名命名的目录下,历史记录文件名根据用户ip和时间命名。打开/usr/share/.history目录会发现里边保存了之前记录的历史命令文件。
命令是记录了,但从安全角度讲,如果他清楚,所有操作均记录了的话,是可以进入日志记录目录,进行文件删除或文件修改的,于是需要将这些文件及时传到日志收集服务器中,最好是作一个后台实时监控进程,该目录下有文件变化的话,直接触发同步操作,把文件及时同步到日志收集服务器,网上也有人把所有记录实时通过日志进程syslog,把日志实时发至日志服务器中。
linux记录每个用户执行的命令的更多相关文章
- Linux记录-普通用户下执行sudo xxx 找不到命令解决方案
chmod 777 /etc/sudoers vim /etc/sudoers 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指定当用户执行 ...
- psacct监视用户执行的命令,如cpu时间和内存战胜,实时进程记账
psacct监视用户执行的命令,如cpu时间和内存战胜,实时进程记账
- Linux禁止普通用户使用crontab命令
cron计划任务默认root用户与非root用户都可以执行,当然如果在安全方面想禁用这部分用户,则可以通过两个文件来解决: cron.allow cron.deny cron.allow:定义允许使用 ...
- rbash限制用户执行的命令
rbash限制用户执行的命令 软连接 sudo ln -s /bin/bash /bin/rbash sudo bash -c 'echo "/bin/rbash" >> ...
- linux下普通用户无法使用sudo命令问题
今天在新装的linux虚拟机中使用sudo命令时,报错如下 We trust you have received the usual lecture from the local System Adm ...
- linux应用之用户管理相关命令
1. useradd useradd 命令可以创建一个新的用户帐号,其最基本用法为: useradd 用户名 如输入以下命令: useradd newuser 系统将创建一个新用户 newuser,该 ...
- linux定时任务crontab怎样执行root命令
在/var/spool/cron/文件夹下放置了所有定时任务文件, 1.运行crontab -u $用户名 -e会显示$用户的所有定时任务: 2.运行sudo crontab -e会显示root用户所 ...
- Linux系列笔记 - 用户以及用户组命令
一.前言 这一系列的随笔笔记,并不是详细的说明的命令的原理,只是简单的记录, 以备后期的查看以及复习 二.直接输入命令问题 有时候,我们在用 useradd groupadd等命令时,直接在终端输入的 ...
- linux非root用户执行开机启动程序
问题 开机启动其他用户的程序或者说非root用户执行开机启动 编写开机启动脚本 编写开机启动脚本apple_tree,放到/etc/init.d,系统启动时会自动执行. 例如,/etc/init.d/ ...
随机推荐
- thinkphp5中的配置如何使用
thinkphp5中的配置如何使用 一.总结 一句话总结:先加载配置,然后读取配置即可 加载配置 读取配置 Config::load(APP_PATH.'fry_config.php');\\加载配置 ...
- myeclipse6.5使用tomcat7报java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory错
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFact ...
- Linux命令详解-help
help命令顾名思义就是显示帮助信息的,它是个Bash内建命令,也只是用来显示Bash内建命令的帮助信息的(Display helpful information about builtin co ...
- Leetcode 18
class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int ta ...
- 移动web开发适配方案之Rem
移动端为什么要做适配 移动端相对PC端来说大部分浏览器内核都是基于Webkit的,所以大部分都支持CSS3的最新语法.但是由于手机的屏幕尺寸和分辨率都不太一样(尤其是安卓),所以不得不对不同分辨率的手 ...
- HTTP相关知识点
一.工作原理 HTTP协议工作于客户端-服务器架构上.浏览器作为HTTP客户端通过URL向HTTP服务端(即web服务端)发送所有请求. Web服务器接收到请求后,向客户端发送相应的响应信 ...
- 16Aspx源码论坛
16Aspx源码论坛: http://bbs.16aspx.com/index.aspx
- 流程设计器jQuery + svg/vml(Demo3 - 添加流程结点)
经过前面的准备工作,终于把设计器的主要UI界面搭建好了,接下来到添加流程结点,效果如下图 代码:GoFlow_03.zip 演示地址:Demo 微信演示公众号: 另:Silverlight版 Silv ...
- L183 Chinese company unveils first satellite for free WiFi
A Chinese internet technology company unveiled the first satellite in a constellation plan to provid ...
- haskell 常用 函数
在学习haskell 记录以下常用的函数 随时更新! span span :: (a -> Bool) -> [a] -> ([a], [a]) span, applied to ...