Centos 记录所有用户登录和操作的详细日志

1、起因

最近Linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录。

一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址、操作时间、操作用户等。

所以我们不得不自己写代码来实现这样的功能。

2、自动记录脚本

/etc/profile文件的末尾追加编写脚本如下:

#set user history
history
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]; then
    USER_IP=`hostname`
fi
if [ ! -d /var/log/history ]; then
    mkdir /var/log/history
    chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
    mkdir /var/log/history/${LOGNAME}
    chown -R ${LOGNAME}:${LOGNAME} /var/log/history/${LOGNAME}
    chmod 770 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 660 /var/log/history/${LOGNAME}/*history* 2>/dev/null

这个脚本需要放在/etc/profile文件的末尾。这里默认写了记录日志文件的根目录是:/var/log/history,这个目录需要初始化建立,然后通过“exportHISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"”可以看到记录日志的路径是/var/log/history/${LOGNAME},所以这个目录也需要事先建立,有多少个用户,就要建立多少个目录,而且要把目录的使用权限赋予相对应的用户。而每次用户登录到退出都会产生以用户名、登录ip地址、操作时间为文件名的文件,文件里面包含本次用户的所有操作记录。

效果:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要设置FTP访问用户和密码,可以按照以下步骤进行操作: 1. 安装vsftpd软件:在CentOS服务器上,可以使用以下命令安装vsftpd软件: ``` yum install vsftpd ``` 2. 配置vsftpd:编辑vsftpd的配置文件,可以使用以下命令打开文件进行编辑: ``` vi /etc/vsftpd/vsftpd.conf ``` 可以设置以下参数来配置vsftpd: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO ``` 说明: - anonymous_enable:是否允许匿名用户访问,设置为NO表示不允许。 - local_enable:是否允许本地用户访问,设置为YES表示允许。 - write_enable:是否允许用户上传文件,设置为YES表示允许。 - local_umask:设置上传文件权限掩码,默认为022。 - dirmessage_enable:是否启用目录提示信息。 - xferlog_enable:是否启用传送日志记录。 - connect_from_port_20:是否使用20端口进行数据连接,设置为YES表示使用。 - xferlog_std_format:传送日志记录是否使用标准格式。 - chroot_local_user:是否限制用户的根目录,设置为YES表示限制。 - userlist_enable:是否使用用户列表。 - userlist_file:用户列表文件路径。 - userlist_deny:是否禁止用户列表中的用户访问。 3. 创建FTP用户:使用以下命令创建FTP用户,并设置密码: ``` useradd -d /var/ftp/userftp -s /sbin/nologin userftp passwd userftp ``` 4. 设置用户目录权限:使用以下命令设置FTP用户的目录的权限: ``` chmod 550 /var/ftp/userftp chown userftp:userftp /var/ftp/userftp ``` 5. 将用户添加到用户列表:使用以下命令将FTP用户添加到用户列表: ``` echo "userftp" >> /etc/vsftpd/user_list ``` 6. 重启vsftpd服务:使用以下命令重启vsftpd服务,使配置生效: ``` systemctl restart vsftpd ``` 现在,可以使用FTP客户端工具登录FTP服务器,输入FTP用户和密码进行访问了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值