|
Packit Service |
a2ae7a |
(* Limits module for Augeas
|
|
Packit Service |
a2ae7a |
Author: Free Ekanayaka <free@64studio.com>
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
Reference: /etc/security/limits.conf
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
module Limits =
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
autoload xfm
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* USEFUL PRIMITIVES
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let eol = Util.eol
|
|
Packit Service |
a2ae7a |
let comment_or_eol = Util.comment_or_eol
|
|
Packit Service |
a2ae7a |
let spc = Util.del_ws_spc
|
|
Packit Service |
a2ae7a |
let comment = Util.comment
|
|
Packit Service |
a2ae7a |
let empty = Util.empty
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* ENTRIES
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let domain = label "domain" . store /[%@]?[A-Za-z0-9_.-]+|\*/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let type_re = "soft"
|
|
Packit Service |
a2ae7a |
| "hard"
|
|
Packit Service |
a2ae7a |
| "-"
|
|
Packit Service |
a2ae7a |
let type = [ label "type" . store type_re ]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let item_re = "core"
|
|
Packit Service |
a2ae7a |
| "data"
|
|
Packit Service |
a2ae7a |
| "fsize"
|
|
Packit Service |
a2ae7a |
| "memlock"
|
|
Packit Service |
a2ae7a |
| "nofile"
|
|
Packit Service |
a2ae7a |
| "rss"
|
|
Packit Service |
a2ae7a |
| "stack"
|
|
Packit Service |
a2ae7a |
| "cpu"
|
|
Packit Service |
a2ae7a |
| "nproc"
|
|
Packit Service |
a2ae7a |
| "as"
|
|
Packit Service |
a2ae7a |
| "maxlogins"
|
|
Packit Service |
a2ae7a |
| "maxsyslogins"
|
|
Packit Service |
a2ae7a |
| "priority"
|
|
Packit Service |
a2ae7a |
| "locks"
|
|
Packit Service |
a2ae7a |
| "sigpending"
|
|
Packit Service |
a2ae7a |
| "msgqueue"
|
|
Packit Service |
a2ae7a |
| "nice"
|
|
Packit Service |
a2ae7a |
| "rtprio"
|
|
Packit Service |
a2ae7a |
| "chroot"
|
|
Packit Service |
a2ae7a |
let item = [ label "item" . store item_re ]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let value = [ label "value" . store /[A-Za-z0-9_.\/-]+/ ]
|
|
Packit Service |
a2ae7a |
let entry = [ domain . spc
|
|
Packit Service |
a2ae7a |
. type . spc
|
|
Packit Service |
a2ae7a |
. item . spc
|
|
Packit Service |
a2ae7a |
. value . comment_or_eol ]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* LENS
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let lns = (comment|empty|entry) *
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let filter = incl "/etc/security/limits.conf"
|
|
Packit Service |
a2ae7a |
. incl "/etc/security/limits.d/*.conf"
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let xfm = transform lns filter
|