Linux记录用户账户的登陆时间和行为信息

??? 公司审计部门要求我们对所有的主机系统添加用户行为审计功能,记录用户账户的登陆时间和行为信息,我这边用了一个简单的方法实现以下,下面我简单介绍一下实现的方法

实施步骤:

1、创建用户行为日志存放目录/var/audit,目录赋予777权限(因为所有用户都要向这个目录写入文件)

mkdir?-p?/var/audit;chmod?777?/var/audit

?
?

2、修改系统环境变量文件/etc/profile,文件新增用户登录记录信息,添加如下内容

#Add?log?user?behavior

export?HISTTIMEFORMAT="%F?%T?"

shopt?-s?cmdhist

shopt?-s?histappend

echo?"$(date?"+%F?%T")?$(whoami)?login"?>>?/var/audit/$(whoami)-history-$(date?"+%F")

?
?

3、修改用户家目录中的.bash_logout文件,用户退出时记录用户行为信息到行为日志文件中,添加如下内容(系统中现有用户都要添加,以后新增用户无需手动添加)

#Add?log?user?behavior

history?>>?/var/audit/$(whoami)-history-$(date?"+%F")

history?-c

rm?-f?$HISTFILE

echo?"$(date?"+%F?%T")?$(whoami)?logout"?>>/var/audit/$(whoami)-history-$(date?"+%F")

?
?

4、用户模板文件中添加如下内容

/etc/skel/.bash_logout文件中添加:

#Add?log?user?behavior

history?>>?/var/audit/$(whoami)-history-$(date?"+%F")

history?-c

rm?-f?$HISTFILE

echo?"$(date?"+%F?%T")?$(whoami)?logout"?>>/var/audit/$(whoami)-history-$(date?"+%F")

?
?

目前我已经在2.127服务器上做了相关配置,用户审计日志格式如下:


时间: 2024-10-11 05:33:24

Linux记录用户账户的登陆时间和行为信息的相关文章

Linux基本命令——用户账户管理

一,用户账号 超级用户:root,UID为0,是linux系统中权限最大的用户. 程序用户:UID为1~499,是某些程序安装时生成的一些低权限用户,一般不允许登录到系统. 普通用户:UID为500~60000,是有管理员创建,拥有的权限受到一定的限制,一般只在自己的宿主目录中有完整的权限. 二,用户账户文件 用户账户的文件由/etc/passwd./etc/shadow两部分组成.     1,/etc/passwd     系统中所有的账户信息都保存在/etc/passwd文件中.每一行代表

Linux记录用户shell命令

在/etc/profile中添加下面内容: export LC_ALL=C TMOUT=3600 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 &qu

linux下用户账户切换

1,)当前我已经登录一个用户hadoop,我怎么切换到root账户呢(应为一般用户经常会遇到无权限修改/etc/hosts./ect/hostname等文件的权限)? 使用命令sudo su 2,) linux下怎么开启root账户? 使用命令sudo passwd root 之后充值root密码,输入两次,确认好后就可以使用root密码登录了.

linux 记录用户操作

上面脚本在系统的/var/log/.history下新建个history目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个 vim /etc/profile.d/history.sh USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'` HISTDIR=/var/log/.history DT=`date +%Y%m

.net 记录用户浏览网页的时间

现在第三方记录网页浏览时间的插件那么多,我们还需要自己书写吗?答案是需要的.     因为现在的第三方记录只能记录访客的信息,不能记录您想的要的会员的数据,如果让您记录会员的数据,如果让您统计某一类的会员访问平均时间您到哪里找给他呢?     我们自己书写一个首页需要jquery与ashx配合才可以使用,下面我们就来书写这一个方法吧.首页我们需要书写一个jquery 方法首先我们定义一个得到当前的时间的方法Date.prototype.Format = function (fmt) { //au

linux 记录用户操作记录日志

####################################################################################historyUSER_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_

Linux给用户分配无需登陆权限

sudo visudo 用户名 ALL=(ALL) NOPASSWD:ALL

Linux系统用户与组的基本命令

用户和组的管理主要是出于对人员的管理,在多用户多任务分时操作系统中:所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户密码.用户在登录时键入正确的用户名和密码后,才能进入系统和自己的主目录.用户和组的管理就是要对员工的账号进行不同程度的管理,一个用户属于什么组对应的使用这个组所

Linux命令 用户管理命令

groupadd [功能说明] 新建用户组 [语法格式] Groupadd[-f][-r][-g<GID><-o>][组名] [选项参数] 参数 说明 -f 建立已存在的组,强制系统接收已经存在的组名称.默认情况下,每个组名在系统中应该是唯一的.若groupadd所给组名称已经存在,将返回错误信息 -r 建立系统账户.因为0-499是系统的保留ID,一般的组ID从500开始,而使用-r参数可以建立组小于500的系统账户 -o 强制使用已经存在的组识别码 -g<GID>