[augeas-devel] Request for Review

Brewer, Janzen H. Janzen.Brewer at gtri.gatech.edu
Wed Oct 26 13:40:26 UTC 2011


I'm new to augeas and I'm trying my hand at writing file descriptions. I'd really appreciate your feedback on this one. It's written for /etc/audit/auditd.conf. I also wrote a test.

Thanks!

-------------------------
augeas/lenses/auditd.aug:
-------------------------
(* Auditd module for Augeas
 Author: Janzen Brewer <janzen.brewer at gtri.gatech.edu>
 Based on Free Ekanayaka's dnsmasq module

 Reference: man auditd.conf (8)

 "[auditd.conf] should contain one configuration keyword per line, an equal
 sign, and then followed by appropriate configuration information."

*)

module Auditd =

   autoload xfm

(************************************************************************
 *                           USEFUL PRIMITIVES
 *************************************************************************)

let eol        = Util.eol
let spc        = Util.del_ws_spc
let comment    = Util.comment
let empty      = Util.empty

let sep_eq     = del /=/ "="
let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/

(************************************************************************
 *                               ENTRIES
 *************************************************************************)

(*let entry_re = /[A-Za-z0-9._-]+/*)
let key_value (kw:string) = [ key kw . spc . sep_eq . spc . sto_to_eol . eol ]
let entry = key_value "log_file"
          | key_value "log_format"
          | key_value "log_group"
          | key_value "priority_boost"
          | key_value "flush"
          | key_value "freq"
          | key_value "num_logs"
          | key_value "max_log_file"
          | key_value "max_log_file_action"
          | key_value "space_left"
          | key_value "space_left_action"
          | key_value "action_mail_acct"
          | key_value "admin_space_left"
          | key_value "admin_space_left_action"
          | key_value "disk_full_action"
          | key_value "disk_error_action"
          | key_value "dispatcher"
          | key_value "disp_qos"
          | key_value "name"
          | key_value "name_format"
          | key_value "tcp_listen_port"
          | key_value "tcp_listen_queue"
          | key_value "use_libwrap"
          | key_value "tcp_client_ports"
          | key_value "tcp_client_max_idle"
          | key_value "tcp_max_per_addr"
          | key_value "enable_krb5"
          | key_value "krb5_principal"
          | key_value "krb5_key_file"

(************************************************************************
 *                                LENS
 *************************************************************************)

let lns = (comment|empty|entry) *
let filter            = incl "/etc/audit/auditd.conf"
                      . excl "#*#"
                      . excl ".*"
                      . Util.stdexcl

let xfm                = transform lns filter

------------------------------------
augeas/lenses/tests/test_auditd.aug:
------------------------------------
module Test_auditd =

        let conf ="log_file = /var/log/audit/audit.log
log_format = RAW
log_group = root
priority_boost = 4
flush = INCREMENTAL
freq = 20
num_logs = 4
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
##name = mydomain
max_log_file = 5
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
##tcp_listen_port =
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
"

        test Auditd.lns get conf =
                { "log_file" = "/var/log/audit/audit.log" }
                { "log_format" = "RAW" }
                { "log_group" = "root" }
                { "priority_boost" = "4" }
                { "flush" = "INCREMENTAL" }
                { "freq" = "20" }
                { "num_logs" = "4" }
                { "disp_qos" = "lossy" }
                { "dispatcher" = "/sbin/audispd" }
                { "name_format" = "NONE" }
                { "#comment" = "#name = mydomain" }
                { "max_log_file" = "5" }
                { "max_log_file_action" = "ROTATE" }
                { "space_left" = "75" }
                { "space_left_action" = "SYSLOG" }
                { "action_mail_acct" = "root" }
                { "admin_space_left" = "50" }
                { "admin_space_left_action" = "SUSPEND" }
                { "disk_full_action" = "SUSPEND" }
                { "disk_error_action" = "SUSPEND" }
                { "#comment" = "#tcp_listen_port =" }
                { "tcp_listen_queue" = "5" }
                { "tcp_max_per_addr" = "1" }
                { "#comment" = "#tcp_client_ports = 1024-65535" }
                { "tcp_client_max_idle" = "0" }
                { "enable_krb5" = "no" }
                { "krb5_principal" = "auditd" }
                { "#comment" = "#krb5_key_file = /etc/audit/audit.key" }

--
Janzen Brewer
Cyber Technology and Information Security Lab
Georgia Tech Research Institute
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/augeas-devel/attachments/20111026/847fce56/attachment.htm>


More information about the augeas-devel mailing list