场景:生产环境下,多个普通用户登录,登录后自动记录history操作到某个统一目录保存。
具体要求:
1) 每个用户登录后自动创建子目录及history记录文件;
2) 允许用户创建history记录文件并追加内容,不允许修改和删除;
3) 不允许用户修改和删除其他用户的子目录;
4) 不允许用户查看其他用户的子目录内容;
解决方案:
编写 /etc/profile 文件,添加下面内容
# securiry record history
# add by shenxiaoran
history
USER_IP=$(who am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g')
if [ "$USER_IP" = "" ];then
USER_IP=`hostname`
fi
if [ ! -d /tmp/user_history ];then
mkdir /tmp/user_history
chown root.root /tmp/user_history
chmod 777 /tmp/user_history
chattr +a /tmp/user_history
fi
if [ ! -d /tmp/user_history/${LOGNAME} ];then
mkdir -p /tmp/user_history/${LOGNAME}
fi
export HISTTIMEFORMAT='%F %T '
export HISTSIZE='40960'
time=$(date '+%Y%m%d-%H:%M:%S')
export HISTFILE="/tmp/user_history/${LOGNAME}/${USER_IP}[$time]"
chmod 600 /tmp/user_history/${LOGNAME}/*history* 2>/dev/null
保存
# source /etc/profile 生效
测试:
创建普通用户,passwd 用户口令,使用普通用户登录
普通用户登录后不会创建history记录文件,退出后立即生成,如下所示:
# ll /tmp/user_history/root/
total 8
-rw------- 1 root root 81 Apr 3 11:43 192.168.11.50[20150403-03:52:17]
-rw------- 1 root root 1239 Apr 3 11:45 192.168.11.50[20150403-11:39:11]
注意:经过修改/etc/profile文件以后,用户登录后输入history命令只能查看到本次登录的历史记录,若想看以前的可以cat ~/.bash_history文件。
用户每开一个终端都会在/tmp/user_history下面保存一个文件,记录当前终端的history信息。
查看文件内容 #cat 192.168.11.50[20150403-11:39:11]
#1428032352
history
#1428032387
cd /tmp/user_history/root/
说明:这里的#1428032352是以Unix时间表示的形式,如果想转换成human模式,可以使用date -d命令转换
# date -d @1428032352
Fri Apr 3 11:39:12 CST 2015
# date -d @1428032352 +'%F %T'
2015-04-03 11:39:12
分享到:
相关推荐
所有用户执行的命令实时保存在一个文件中,文件内容如下: 2016-03-01 17:34:42 ##### USER:root IP:172.16.50.146 8160 22 PS:/dev/pts/1 ppid=2037 pwd=/root #### wget ...
linux系统history记录保存用户操作日志,登陆时间,防止会话退出时覆盖 以下是代码: #说明: /etc/profile 中结尾添加如果下指令 #保存并执行如下使之生效:source /etc/profile #history #HISTFILESIZE:表示文件的...
history列出的不仅有文件中的,还有本次登录后执行的命令。需要正确注销后才会写入文件 bash_history文件中保存的只有上一次正确注销后的命令。 历史命令(环境变量)配置文件/etc/profile 历史命令 默认保存1k条,...
mongoid-history, 多用户非线性历史记录跟踪审计撤消mongoid重做 mongoid历史记录 mongoid历史记录任何文档的历史变化,包括嵌入的。 它通过将所有历史记录存储在你定义的单个集合中来实现。 嵌入式文档由存储关联...
localhistory是将历史记录存储到的浏览器库。 防止localStorage异常到达您的代码。 修剪较旧的条目,以避免使localStorage饱和。 约1k缩小并压缩。 没有依赖关系。 localhistory最初是为了向语言游乐场添加...
但是这里只显示了命令,并没有显示执行命令的时间,因为保存历史命令的~/.bash_history里并没有保存时间。 通过设置环境变量 export HISTTIMEFORMAT=%F %T `whoami` 给history加上时间戳 [root@servyou_web ~...
shell-history, 获取用户的shell的命令历史记录 壳历史 获取用户 shell的命令历史。安装$ npm install --save shell-history用法const shellHistory = require('shell-history'
git history git history git history
汇总部分history用法,其中包括输入带时间格式history内容,以及history中保存的命令的再次调用的方法等等
SAP系统,默认情况下只能查看用户的上次登录记录, 但之前的登录并不会进行记录。本文介绍了如何设置审计参数文件,并利用审计日志来查看用户在某段时间内的登录情况。
hacker-history.pdf hacker-history.pdf
history of homological algebra
vscode 插件 Git History
history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。 如果你经常使用Linux命令,那么使用history命令可以有效地提升你的效率。 语法格式: history [参数] [目录] 常用参数: ...
bash_database_history:将您的bashzsh历史记录保存到mysql或sqlite中
A Brief History of Computing(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
connect-history-api-fallback, 返回到使用 HTML 5历史记录API的应用程序的回退到 index.html connect-history-api-fallback通过指定索引页面向代理请求请求中间件,这对于使用HTML5历史API的单页应用程序。...
软件介绍: Clipboard History Pro能够自动保存每次剪贴板中的内容。当您复制文字到剪切板一段时间,,它们将存储在这个列表。 按下快捷键文字将被粘贴到到任意... 如果多个用户同时保存资料,同步处理也将执行。
Brief UNIX History
批处理方式打开History.IE5,查看操作系统临时文件