.bashrc 和 .ssh/ 似乎随机消失

.bashrc 和 .ssh/ 似乎随机消失

我有一台服务器,它已经运行 Fedora 16 ( 3.1.0-7.fc16.x86_64 ) 大约一个月了。我每隔几天或几周才登录一次,但当我登录时,有时我的主目录中会丢失文件。我没有在那里保存任何文档或其他东西,所以我不能说我的问题有多严重,但我知道 .bash_profile、.bashrc 以及有时 .ssh/ 的内容 (keyfiles、config、authorized_keys) 有时会丢失。它们就这么消失了 (而且并不总是同时消失,今天 bash 文件不见了,上周 .ssh 是空的)。我似乎无法在网上找到任何相关信息 (这不是人们在全新安装和初始更新时遇到的问题,因为系统会定期更新,所以初始更新和安装问题应该已经结束,不会重复出现)。

# /etc/fstab
# ...
/dev/mapper/vg_host-lv_root /                       ext4    defaults        1 1
UUID=1e51ac20-4a4c-4060-b1d2-11a675d082f2 /boot                   ext4    defaults        1 2
UUID=8D78-47C0          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/vg_host-lv_home /home                   ext4    defaults        1 2
/dev/mapper/vg_host-lv_swap swap                    swap    defaults        0 0

我昨天将这两条规则都添加到了 audit.rules 中

-w /home/me/ -p wa -k homedir_watch
-w /home/me/ -k whodeletedit -p w

今天 .bashrc 又不见了,但是当我用下面任何一个进行搜索时

ausearch -f /home/lockhart  -k homedir_watch
ausearch -i -k whodeletedit

我明白了

<no matches>

但是,当我添加/重新创建丢失的文件时,得到同样的结果 - 仍然没有匹配。

答案1

如果您具有服务器的根级访问权限,则可以安装并启用auditd它跟踪文件系统级别的变化并帮助您识别导致删除文件的原因。

然后你需要设置一个监视写入到你的主目录(从目录中删除文件需要写入包含该文件的目录)可能对其进行标记,以便你可以将其与其他正在运行的监视分开:

auditctl -w /home/you/ -k whodeletedit -p w

当文件再次丢失时

ausearch -i -k whodeletedit

将告诉您主目录发生了哪些变化。

这一切都假设系统正常运行,并且文件不会由于驱动器损坏或系统不当关闭而丢失数据。

答案2

就过去事件的取证而言,这取决于您配置的日志记录和设置。

在基本层面上,您应该能够使用该stat工具查看问题文件的最后更改时间以及其他相关信息;

`$ stat ~/.bash_profile
  File: `/home/user1/.bash_profile'
  Size: 497             Blocks: 8          IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 1049582     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    user1)   Gid: ( 1000/    tomh)
Access: 2012-05-19 15:36:18.691678693 +0100
Modify: 2012-03-30 03:18:35.522606708 +0100  <---- file was changed this time
Change: 2012-03-30 03:18:35.545606708 +0100
 Birth: -`

这将指示文件何时被更改。

您可以将此时间戳值与/var/log/secure文件中的条目以及其他日志中文件归零前后的事件进行比较,因此您要查找登录的用户等或 sudo 命令。

对于将来的事件,您可以安装和配置审计守护进程服务像这样查看你的主目录;

$ sudo yum install audit
Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit
Package audit-2.2.1-1.fc16.x86_64 already installed and latest version

配置 auditd 服务启动

# service auditd start
Redirecting to /bin/systemctl  start auditd.service

并在启动时启用;

# chkconfig auditd on
Note: Forwarding request to 'systemctl enable auditd.service'.
ln -s '/lib/systemd/system/auditd.service' '/etc/systemd/system/multi-user.target.wants/auditd.service'

并通过在文件末尾添加以下内容来配置主目录上的监视/etc/audit/audit.rules

 -w /home/user1 -p wa -k homedir_watch

然后您可以像这样搜索日志中文件的更改;

 # ausearch -i -k homedir_watch


----
time->Sat May 19 16:53:00 2012
type=PATH msg=audit(1337442780.935:1274): item=1 name="/home/user1/.config/google-chrome/Default/Cookies-journal" inode=1050743 dev=fd:02 mode=0100644 ouid=1000 ogid=1000 rdev=00:00
type=PATH msg=audit(1337442780.935:1274): item=0 name="/home/user1/.config/google-chrome/Default/" inode=1056816 dev=fd:02 mode=040700 ouid=1000 ogid=1000 rdev=00:00
type=CWD msg=audit(1337442780.935:1274):  cwd="/home/user1"
type=SYSCALL msg=audit(1337442780.935:1274): arch=c000003e syscall=2 success=yes exit=104 a0=7fcece769259 a1=42 a2=1a4 a3=30 items=2 ppid=1 pid=8151 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=2 comm="Chrome_DBThread" exe="/opt/google/chrome/chrome" key="homedir_watch"
  • 笔记

请注意,它可以很快运行大量日志,因此如果您打算使用它并让它运行,那么有一些好的文档在这里

相关内容