Server IP : 85.214.239.14 / Your IP : 3.144.4.50 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/augeas/lenses/dist/ |
Upload File : |
(* Slapd module for Augeas Author: Free Ekanayaka <free@64studio.com> Reference: man slapd.conf(5), man slapd.access (5) *) module Slapd = autoload xfm (************************************************************************ * USEFUL PRIMITIVES *************************************************************************) let eol = Util.eol let spc = Util.del_ws_spc let sep = del /[ \t\n]+/ " " let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/ let sto_to_spc = store /[^\\# \t\n]+/ let comment = Util.comment let empty = Util.empty (************************************************************************ * ACCESS TO *************************************************************************) let access_re = "access to" let control_re = "stop" | "continue" | "break" let what = [ spc . label "access" . store (/[^\\# \t\n]+/ - ("by" | control_re)) ] (* TODO: parse the control field, see man slapd.access (5) *) let control = [ spc . label "control" . store control_re ] let by = [ sep . key "by" . spc . sto_to_spc . what? . control? ] let access = [ key access_re . spc. sto_to_spc . by+ . eol ] (************************************************************************ * GLOBAL *************************************************************************) (* TODO: parse special field separately, see man slapd.conf (5) *) let global_re = "allow" | "argsfile" | "attributeoptions" | "attributetype" | "authz-policy" | "ldap" | "dn" | "concurrency" | "cron_max_pending" | "conn_max_pending_auth" | "defaultsearchbase" | "disallow" | "ditcontentrule" | "gentlehup" | "idletimeout" | "include" | "index_substr_if_minlen" | "index_substr_if_maxlen" | "index_substr_any_len" | "index_substr_any_step" | "localSSF" | "loglevel" | "moduleload" | "modulepath" | "objectclass" | "objectidentifier" | "password-hash" | "password-crypt-salt-format" | "pidfile" | "referral" | "replica-argsfile" | "replica-pidfile" | "replicationinterval" | "require" | "reverse-lookup" | "rootDSE" | "sasl-host" | "sasl-realm" | "sasl-secprops" | "schemadn" | "security" | "sizelimit" | "sockbuf_max_incoming " | "sockbuf_max_incoming_auth" | "threads" | "timelimit time" | "tool-threads" | "TLSCipherSuite" | "TLSCACertificateFile" | "TLSCACertificatePath" | "TLSCertificateFile" | "TLSCertificateKeyFile" | "TLSDHParamFile" | "TLSRandFile" | "TLSVerifyClient" | "TLSCRLCheck" | "backend" let global = Build.key_ws_value global_re (************************************************************************ * DATABASE *************************************************************************) (* TODO: support all types of database backend *) let database_hdb = "cachesize" | "cachefree" | "checkpoint" | "dbconfig" | "dbnosync" | "directory" | "dirtyread" | "idlcachesize" | "index" | "linearindex" | "lockdetect" | "mode" | "searchstack" | "shm_key" let database_re = "suffix" | "lastmod" | "limits" | "maxderefdepth" | "overlay" | "readonly" | "replica uri" | "replogfile" | "restrict" | "rootdn" | "rootpw" | "subordinate" | "syncrepl rid" | "updatedn" | "updateref" | database_hdb let database_entry = let val = Quote.double_opt in Build.key_value_line database_re Sep.space val let database = [ key "database" . spc . sto_to_eol . eol . (comment|empty|database_entry|access)* ] (************************************************************************ * LENS *************************************************************************) let lns = (comment|empty|global|access)* . (database)* let filter = incl "/etc/ldap/slapd.conf" . incl "/etc/openldap/slapd.conf" let xfm = transform lns filter