LoggedFS配置文件语法


8

LoggedFS配置文件的语法是什么?

官方文档仅包含该loggedfs命令的用法说明和一个配置文件示例。好的,它是XML,但是所有可能的标记和属性是什么,它们的含义是什么?

Answers:


8

我戳了Config.cpp一下,该文件负责解析配置。该示例配置实际上在捕获可用选项方面做得非常好-并不是很多

当我参考下面的“示例输出”时,我在说的是这一行(从示例页面中随机抽取):

17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]

根标记为<loggedFS>。它具有两个可选属性:

  • logEnabled是一个字符串-“ true”表示它应该实际输出日志信息;其他禁止所有日志记录。默认为“ true”,因为这是程序的重点
  • printProcessName是一个字符串-“ true”表示日志输出将包括进程名称,其他表示不包括。默认为“ true”。在示例输出中,kded [kdeinit]是进程名称

它唯一关心的子节点是<include><exclude>。在该示例中,它们将那些在<includes>和下的<excludes>块进行分组,但是解析器将忽略它们(与<include>和以外的任何其他节点一样<exclude>)。

自然,<include>规则会使其匹配时输出日志行,而<exclude>行则不会。如果发生重叠,请<exclude>覆盖<include>。通常,您至少需要一条<include>规则来匹配要记录的事件,但是有0 <include>条规则是一个例外- 即使有匹配的<exclude>也会记录所有事件。

双方<include><exclude>采取相同的属性:

  • 扩展名是一个正则表达式,它与访问/修改的文件的绝对路径相匹配(无论extension该名称是一个很差的名字,但我想这是常用的用法)。例如,如果您使用touch /mnt/loggedfs/some/file中的正则表达式,则extension需要(部分)匹配/mnt/loggedfs/some/file
  • uid是一个包含整数或的字符串*。仅当引起该操作的进程的所有者具有指定的用户ID(*自然意味着任何用户ID匹配)时,该规则才与给定的操作匹配。在示例输出中,1000是uid
  • action是在文件系统上执行的特定操作类型。在示例输出中,getattr是动作。可能的操作是:
    • 访问
    • chmod
    • wn
    • getattr
    • 链接
    • 麦克迪尔
    • 麦克菲
    • 麦克诺德
    • 打开
    • 开放只读
    • 开放读写
    • 开放只写
    • 读目录
    • 阅读链接
    • 改名
    • rmdir
    • 状态
    • 符号链接
    • 截短
    • 取消连结
    • 时间
    • 时光
  • retname是一个正则表达式。如果LoggedFS执行的实际文件系统操作的返回码为0,则将正则表达式与string匹配SUCCESS。非零的返回码使它与匹配FAILURE。这些是唯一可能的值,所以很有可能你要么去硬编码SUCCESSFAILURE或使用.*,如果你想两者。在示例输出中,SUCCESSretname

<loggedFS>属性不同,这些属性没有默认值。同样,虽然解析器将识别未知属性并输出错误,但它不会检测到丢失的属性,因此,如果忘记了一个属性,它将使用未初始化的内存。


默认的包含/排除列表是什么(空的,所以我不包含任何内容)?如果您包括/a,排除/a/b和包括/a/b/c,被/a/b/c观看了吗?包括目录是否总是包含其内容?
吉尔(Gilles)'所以

@Gilles它对目录一无所知,它只使用完整的绝对路径并将其与正则表达式匹配。因此<include extension="/a" uid="*" action=".*" retname=".*" />,将匹配对路径包含的文件进行的每个操作,/a甚至可能匹配/foo/abc/bar。您可能想用^和将它们全部锚定$,但是随后您需要包括它匹配的整个路径
迈克尔·莫罗泽克

@Gilles没有任何规则实际上是一个特例,因此我将其添加到答案中
Michael Mrozek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.