GNU/Linux >> Znalost Linux >  >> Linux

Syntaxe konfiguračního souboru Loggedfs?

Jaká je syntaxe konfiguračního souboru LoggedFS?


Oficiální dokumentace obsahovala pouze pokyny k použití pro loggedfs příkaz a příklad konfiguračního souboru. Dobře, je to XML, ale jaké jsou všechny možné značky a atributy a co znamenají?

Přijatá odpověď:

Prohledal jsem Config.cpp , soubor zodpovědný za analýzu konfigurace. Příklad konfigurace ve skutečnosti dělá docela dobrou práci při zachycení dostupných možností – není jich moc

Když odkazuji na „ukázkový výstup“ níže, mluvím o tomto řádku (náhodně vytaženém z ukázkové stránky):

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

Kořenová značka je <loggedFS> . Má dva volitelné atributy:

  • logEnabled je řetězec — „true“ znamená, že by měl ve skutečnosti vydávat informace protokolu; cokoliv jiného zakáže veškeré protokolování. Výchozí hodnota je „true“, protože to je tak trochu smyslem programu
  • printProcessName je řetězec — „true“ znamená, že výstup protokolu bude obsahovat název procesu, cokoliv jiného znamená, že nebude. Výchozí hodnota je „true“. V ukázkovém výstupu kded [kdeinit] je název procesu

Jediné podřízené uzly, o které se stará, jsou <include> a <exclude> . V příkladu je seskupují pod <includes> a <excludes> bloky, ale ty jsou analyzátorem ignorovány (stejně jako všechny ostatní uzly kromě <include> a <exclude> ).

Přirozeně <include> pravidla způsobí, že vypíše řádek protokolu, pokud se shodují, zatímco <exclude> řádky způsobí, že ne. V případě překrývání <exclude> přepíše <include> . Normálně potřebujete alespoň jeden <include> pravidlo odpovídající události, která má být protokolována, ale výjimka je, pokud existuje 0 <include> pravidla — pak jsou protokolovány všechny události, i když existují odpovídající <exclude> řádky .

Oba <include> a <exclude> mít stejné atributy:

  • rozšíření je regulární výraz, který se shoduje s absolutní cestou k souboru, ke kterému bylo přistupováno/upraveno/cokoli (extension je dost špatné jméno, ale myslím, že se to běžně používá). Pokud se například touch /mnt/loggedfs/some/file , regulární výraz v extension bude muset (částečně) odpovídat /mnt/loggedfs/some/file
  • uid je řetězec, který obsahuje buď celé číslo, nebo * . Pravidlo odpovídá dané operaci pouze v případě, že vlastník procesu, který operaci způsobil, má zadané ID uživatele (* přirozeně znamená jakékoli shody ID uživatele). V příkladu výstupu 1000 je uid
  • akce je specifický typ operace prováděné na souborovém systému. V příkladu výstupu getattr je akce. Možné akce jsou:
    • přístup
    • chmod
    • chown
    • getattr
    • odkaz
    • mkdir
    • mkfifo
    • mknod
    • otevřené
    • otevřené-pouze pro čtení
    • otevřený-readwrite
    • pouze otevřít-zapisovat
    • číst
    • readdir
    • přečíst odkaz
    • přejmenovat
    • rmdir
    • statfs
    • symlink
    • zkrátit
    • odpojit
    • doba provozu
    • utimens
    • pište
  • přejmenovat je regulární výraz. Pokud je návratový kód skutečné operace souborového systému provedené LoggedFS 0, regulární výraz se shoduje s řetězcem SUCCESS . Nenulový návratový kód způsobí, že se shoduje s FAILURE . Toto jsou jediné možné hodnoty, takže s největší pravděpodobností buď napevno zakódujete SUCCESS , FAILURE nebo použijte .* pokud chceš obojí. V příkladu výstupu SUCCESS je retname

Na rozdíl od <loggedFS> atributy, nemají žádné výchozí hodnoty. I když parser rozpozná neznámé atributy a dojde k chybě, nezjistí chybějící atributy, takže pokud atribut zapomenete, použije neinicializovanou paměť.

Související:Linux – Najít adresáře, které obsahují více než jeden soubor se stejnou příponou?
Linux
  1. Přesměrování vstupu/výstupu v Linuxu/Unixu

  2. Jak zkontrolovat syntaxi sudoers

  3. Jak zobrazit zvýraznění syntaxe v souboru?

  1. Výstupní obsah souboru, když se mění?

  2. Zachyťte výstup nethogs do souboru protokolu

  3. Jednoduchý příklad auditované konfigurace?

  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Konfigurační soubor databáze Magento 2

  3. Nelze odeslat data MySQL do souboru