Linux系统下通过bash配置文件的方式将用户执行的命令写入syslog

注,如用户的shell是/bin/sh,需要将其修改为/bin/bash!! usermod -s /bin/bash 用户名

kali Linux系统对应的配置文件是/etc/bash.bashrc,不同发行版本可能不同

步骤一:vi /etc/bashrc  增加如下:

HISTFILESIZE=2000

HISTSIZE=2000

HISTTIMEFORMAT="%Y%m%d-%H%M%S: "

export HISTTIMEFORMAT

#export PROMPT_COMMAND=‘{ command=$(history 1 | { read x y; echo $y; }); logger -p local1.notice -t bash -i "user=$USER,ppid=$PPID,from=$SSH_CLIENT,pwd=$PWD,command:$command"; }‘

export PROMPT_COMMAND=‘{ ip=$(who -u am i | { read x y z a b c d ; echo $d; });command=$(history 1 | { read x y; echo $y; }); logger -p local1.notice -t bash -i "user=$USER,ppid=$PPID,from=$ip,pwd=$PWD,command:$command"; }‘

步骤二:修改/etc/syslog.conf 或/etc/rsyslog.conf 增加local1.notice @syslog主机地址  或*.* @syslog主机地址。重启syslog 服务

步骤三:退出当前shell,再次登陆即可记录。

目前可实现的效果:

1.所有的指令不管错误与否均可记录。且包含源IP(本地登陆除外)、当前目录

2.所有可登陆bash的用户指令均可记录。且包含源IP(本地登陆除外)、当前目录

目前测试了两种系统Redhat 及Centos,版本信息如下:

1.Read hat:  Red Hat Enterprise Linux Server release 6.0 (Santiago)

内核:2.6.32-71.el6.i686 bash版本:GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)

2.Centos :   CentOS release 5.4 (Final)  内核:2.6.18-164.el5 bash 版本:GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)

样本:

bash[4463]: user=soc,ppid=4437,from=10.70.20.20 4763 22,pwd=/root,command:20150112-193253: uname -a

bash[4679]: user=root,ppid=4326,from=10.70.20.20 4763 22,pwd=/root,command:20150112-194716: ps -ef|grep tail 
时间: 2024-10-24 03:09:56

Linux系统下通过bash配置文件的方式将用户执行的命令写入syslog的相关文章

Linux 系统下文件夹与文件的读写可执行权限问题

linux是一个多用户操作系统,linux对文件系统内的所有文件,实行了严格的权限划分管理.防止没有权限的用户访问某个文件.linux文件或目录的权限分为 读.写.可执行三种权限.文件访问的用户类别分为,文件创建者.与文件创建者同组的用户.其他用户三类.解释说明:drwxr-xr-x一:drwxr  创建者拥有的权限r-x   与拥有者同组的用户拥有的权限r-x     其他用户拥有的权限linux用他们的组合来表示文档或目录的权限!d rwx r-x r-x目录 属主权限 属组权限 其他权限对

Linux系统下部署maven nexus私服和手动同步中央仓库索引

一.准备工作 1. 下载JDK和maven nexus,JDK很好下载,不多做解释,但是maven nexus当时我从官网上下载不了,在网上找了很久,最终从从CSDN共享文件中下载到,将其共享到网盘中方便提供下载.(注意:JDK版本要和maven版本匹配) nexus的网盘内容: 链接:http://pan.baidu.com/s/1qWsYScG 密码:8hb0-----此版本是2.4 链接:http://pan.baidu.com/s/1ntEJExb 密码:1lsw------此版本是2.

Linux系统下用户与组的管理

Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户:1--65535 系统用户 系统已经已经存在专门用来对系统服务或者系统资源进行管理的 1--499(CentOS 6.X) 1--999 (CentOS 7.X) 登录用户(平时专门做系统管理的用户) 500+ (CentOS 6.X) 1000+ (CeentOS 7.X) 2.gid(用户组身份

Linux系统下如何查看已经登录用户

Linux系统下如何查看已经登录用户 虽然前面介绍了用户管理,但是那部分主要是管理用户的帐号,也就静态的用户列表.而LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务.系统管理员可以随时了解系统中有那些用户,用户都在进行什么操作. 查看用户的操作 系统管理员若想知道某一时刻用户的行为,只需要输入命令W 即可,在SHELL终端中输入如下命令: [[email protected] ROOT] # W2:31PM UP 11 DAY ,21:18 4 USERS, LODE

Linux系统下基本命令

<Linux系统下基本命令> Linux系统下基本命令: 要区分大小写 uname 显示版本信息(同win2K的 ver) dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir) pwd 查询当前所在的目录位置 cd cd ..回到上一层目录,注意cd 与..之间有空格.cd /返回到根目录. cat 文件名 查看文件内容 cat >abc.txt 往abc.txt文件中写上内容. more 文件名 以一页一页的方式显示一个文本文件. cp 复制文件 mv 移

linux系统下修改文件夹目录权限

linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名为cc的文件夹为例. 下面一步一步介绍如何修改权限: 1.打开终端.输入su(没 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件

在Linux系统下安装大于mysql5.5版本的数据库

linux下mysql 5.5的安装方法: 1.安装所需要系统库相关库文件      gcc等开发包,在安装linux系统的时候安装. 2.创建mysql安装目录 # mkdir -p /usr/local/mysql/ 3.创建数据存放目录 # mkdir -p /service/data/ 4.创建用户和用户组与赋予数据存放目录权限 # groupadd mysql # useradd -g mysql mysql # chown mysql:mysql -R /service/data/

Linux系统下的定时任务Crontab

什么是Crontab Crontab是Linux系统下的定时任务工具,相当于WIN7系统的任务计划,能够让系统定时做出详见 Cron Crontab能用来做什么 Crontab能用来添加Linux或者Unix系统中的定时任务,让系统定时执行某个命令,比如服务器的数据库需要每天凌晨重启下,不可能每天凌晨起来手动重启.可以用Crontab添加凌晨5点重启数据库的定时任务,系统到每天凌晨5点就会自动重启数据了. Crontab能做的事情还很多,比如定时发送邮件,定时检验库存,定时清理日志,定时备份数据

Linux系统下磁盘配额、软RAID及LVM的配置与管理

Linux系统下磁盘配额.软RAID及LVM的 配置与管理 一.设定文件系统配额 1.概述:配额是操作系统的一个可选的功能, 它允许管理员以文件系统为单元, 限制分派给用户或组成员所使用的磁盘空间大小或是使用的总文件数量.这经常被用于那些分时操作的系统上, 对于这些系统而言, 通常希望限制分派到每一个用户或组的资源总量, 从而可以防止某个用户占用所有可用的磁盘空间. 2.配置文件系统配额(基于用户): (1)配置配额前准备工作: 1)备份/home目录,创建分区,进行挂载,将/home目录下的数