每次我更新数据库时:
tripwire --check --interactive
但我仍然收到 Tripwire 的通知,告诉我情况/root
已发生变化。
-------------------------------------------------------------------------------
Rule Name: Root config files (/root)
Severity Level: 100
-------------------------------------------------------------------------------
----------------------------------------
Modified Objects: 1
----------------------------------------
Modified object name: /root
Property: Expected Observed
------------- ----------- -----------
Object Type Directory Directory
Device Number 2049 2049
File Device Number 0 0
Inode Number 1572865 1572865
Mode drwx------ drwx------
Num Links 8 8
UID root (0) root (0)
GID root (0) root (0)
Size 4096 4096
* Modify Time Fri Jan 11 18:45:54 2019 Sat Jan 12 03:46:50 2019
* Change Time Fri Jan 11 18:45:54 2019 Sat Jan 12 03:46:50 2019
Blocks 8 8
这是全新安装后的策略,我只是删除了,.bash_history
因为我不知道如何从该文件中的“不良更改”中识别我自己的更改:
# These files change the behavior of the root account
(
rulename = "Root config files",
severity = 100
)
{
/root -> $(SEC_CRIT) ; # Catch all additions to /root
/root/test_results -> $(SEC_CONFIG) -s;
/root/.joe_state -> $(SEC_CONFIG) -s;
# /root/mail -> $(SEC_CONFIG) ;
# /root/Mail -> $(SEC_CONFIG) ;
# /root/.xsession-errors -> $(SEC_CONFIG) ;
# /root/.xauth -> $(SEC_CONFIG) ;
# /root/.tcshrc -> $(SEC_CONFIG) ;
# /root/.sawfish -> $(SEC_CONFIG) ;
# /root/.pinerc -> $(SEC_CONFIG) ;
# /root/.mc -> $(SEC_CONFIG) ;
# /root/.gnome_private -> $(SEC_CONFIG) ;
# /root/.gnome-desktop -> $(SEC_CONFIG) ;
# /root/.gnome -> $(SEC_CONFIG) ;
# /root/.esd_auth -> $(SEC_CONFIG) ;
# /root/.elm -> $(SEC_CONFIG) ;
# /root/.cshrc -> $(SEC_CONFIG) ;
/root/.bashrc -> $(SEC_CONFIG) ;
# /root/.bash_profile -> $(SEC_CONFIG) ;
# /root/.bash_logout -> $(SEC_CONFIG) ;
# /root/.bash_history -> $(SEC_CONFIG) -s;
!/root/.bash_history ;
# /root/.amandahosts -> $(SEC_CONFIG) ;
# /root/.addressbook.lu -> $(SEC_CONFIG) ;
# /root/.addressbook -> $(SEC_CONFIG) ;
# /root/.Xresources -> $(SEC_CONFIG) ;
# /root/.Xauthority -> $(SEC_CONFIG) -i ; # Changes Inode number on login
# /root/.ICEauthority -> $(SEC_CONFIG) ;
}
我不知道是什么原因导致“修改时间变化”,但这很烦人。有没有办法忽略时间变化,但仍然关注根文件夹中删除、添加和修改的文件?
或许/root -> $(SEC_CRIT) -m;
但我不知道是否-m
也忽略文件更改。
答案1
第一的:这不是直接答案,如何忽略 的时间戳/root
,它更多的是一个信息howto configure tripwire to ignore some special changes inside the root folder
(因为我仍然没有回答我原来的问题)。
仅看到文件夹上的时间戳更改而不知道该文件夹内发生了什么变化仍然令人沮丧。在(参见评论)的帮助下,inotify
我能够识别根内部的一些变化。
现在这里有一些示例,可能会导致根更改:
- 来自 joe 等编辑器的临时文件(joe 创建末尾带有 ~ 的文件,以保存最后的更改)
- cronjobs,脚本在根目录中保存/更新某些内容
/root/.cache/
使用像 mc(午夜指挥官)这样的程序使用/root/.cache/mc
/root/.config
使用htop 或 mc 等程序/root/.local/
使用像 mc (/root/.local/share/mc
)的程序- 变化于
/root/.bash_history
- 编辑乔使用
/root/.joe_state
当然,有无数的事情可能会导致 root 内部发生变化,inotify 是识别这些变化的好帮手。
在我的特殊情况下,我停止了 Tripwire 抱怨我对这个配置的更改:
/root -> $(SEC_CONFIG) ; # Catch all additions to /root
!/root/.bash_history ;
!/root/.joe_state ;
/root/.cache -> $(SEC_CONFIG) ;
/root/.config -> $(SEC_CONFIG) ;
/root/.local -> $(SEC_CONFIG) ;
/root
应该是$(SEC_CRIT)
,但就我而言,大多数事情都是以 root 身份完成的,无论这是否不好,所以为了让 tripwire 更安静一点,我现在用 use 来$(SEC_CONFIG)
代替。
当然,我们应该提到,很多这样的问题可以通过不以 root 身份工作并使用 sudo 代替。但如果你不能或不想,你必须关心 root 内部发生的所有变化,这可能是非常西西弗斯式的挑战。