Linux中/var/log/btmp记失败SSH登录。pam_lastlog管理这些日志。文件损坏影响记录,了解原因及解法对系统安全稳定至关重要。
先决条件
- Red Hat Enterprise Linux release 9.5 (Plow)
- 系统上已安装smartctl和fsck工具,若未安装,可使用以下命令安装:
[root@shizhanxia.com ~]# apt-get install smartmontools e2fsprogs
在基于Red Hat或CentOS的系统中,可使用以下命令安装:
[root@shizhanxia.com ~]# yum install smartmontools e2fsprogs
问题现象
在系统日志中出现类似如下的错误信息:
Feb 20 08:00:02 shizhanxia.com sshd[398682]: pam_lastlog(sshd:session): corruption detected in /var/log/btmp
这表明pam_lastlog模块在处理SSH会话时,检测到/var/log/btmp文件存在数据损坏的情况。
诊断步骤
当看到系统日志中的错误信息后,首先要确认该错误信息是否频繁出现。可以通过查看最近一段时间的系统日志,了解错误出现的频率和规律。
[root@shizhanxia.com ~]# grep "pam_lastlog(sshd:session): corruption detected in /var/log/btmp" /var/log/messages
检查文件状态:使用ls命令查看/var/log/btmp文件的基本信息,包括文件大小、权限、修改时间等,判断文件是否存在异常。
[root@shizhanxia.com ~]# ls -l /var/log/btmp
解决方案
1.检查磁盘和文件系统
(1)检查磁盘健康状况
使用smartctl工具检查磁盘的健康状态。例如,对于/dev/sda磁盘:
[root@shizhanxia.com ~]# smartctl -a /dev/sda
如果检测到磁盘存在问题,如大量的坏道或读写错误,可能需要更换磁盘。
(2)检查和修复文件系统
使用fsck工具检查和修复文件系统。首先要卸载文件系统,然后进行检查和修复。例如,对于/文件系统,需要在单用户模式下进行操作:
[root@shizhanxia.com ~]# umount / [root@shizhanxia.com ~]# fsck -y /dev/sda1 # 假设根分区为/dev/sda1
2.备份并清空/var/log/btmp文件
原创文章,作者:保哥,如若转载,请注明出处:https://www.shizhanxia.com/2236.html