.bashrc和.ssh /看似随意消失

我有一台运行Fedora 16(3.1.0-7.fc16.x86_64)的服务器已经有一个月了。 我只能每几天或几周login一次,但是当我这样做的时候,有时候我的主目录中缺less文件。 我不保留任何文件或任何内容,所以我不能说我有什么问题,但是我知道.bash_profile,.bashrc,有时.ssh /(keyfiles,config ,authorized_keys)有时会丢失。 他们只是消失(并不总是一次,今天的bash文件已经消失了,上星期.ssh是空的)。 我似乎无法在网上find任何有关它的信息(这不是人们在干净的安装和初始更新时遇到的问题,因为系统定期更新,所以最初的更新和安装问题应该结束,而不是重复发生)。

# /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 

我昨天把这两条规则都join了audit.rules

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

今天.bashrc又一次,但是当我search这些

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

我明白了

 <no matches> 

但是,当我添加/重新创build丢失的文件时,我也一样 – 仍然没有匹配。

如果您具有对服务器的根级别访问权限,则可以安装并启用auditd ,以跟踪文件系统级别的更改,并帮助您确定负责删除文件的内容。

然后,您可以设置一个监视器来写入您的主目录(从目录中删除文件需要写入包含该文件的目录),可能会对其进行标记,以便与其他正在运行的手表保持独立:

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

当文件再次失踪

 ausearch -i -k whodeletedit 

会告诉你什么改变了你的主目录。

这一切都假定系统正常运行,并且由于驱动器损坏或系统不正确地closures和丢失数据,文件不会丢失。

就以往事件的取证而言,取决于您configuration的日志和设置。

在基本层面上,您应该能够查看问题文件上次更改的时间以及使用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文件中的条目进行比较,并将其他日志logging在文件归零时的事件日志中,以便查找login的用户或sudo命令。

对于将来的事件,您可以安装和configuration审计守护进程服务,以便像这样监视您的主目录;

 $ 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 

configurationauditd服务启动

 # 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文件的末尾来在主目录上configuration一个监视;

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

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

  # 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" 
  • 笔记

要小心,这可以很快地运行很多日志,所以如果你打算使用它并保持运行,那么这里有一些很好的文档