git: 952fa7cc8e66 - main - security/vulsrepo: new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 24 Feb 2024 23:37:53 UTC
The branch main has been updated by girgen: URL: https://cgit.FreeBSD.org/ports/commit/?id=952fa7cc8e66f3160ea8ec408a4e98d78720ffdf commit 952fa7cc8e66f3160ea8ec408a4e98d78720ffdf Author: Palle Girgensohn <girgen@FreeBSD.org> AuthorDate: 2024-02-22 00:39:25 +0000 Commit: Palle Girgensohn <girgen@FreeBSD.org> CommitDate: 2024-02-24 23:37:45 +0000 security/vulsrepo: new port vulsrepo runs a small custom web server presenting a web gui for the vulnerabilty reports created by security/vuls. --- security/Makefile | 1 + security/vulsrepo/Makefile | 47 ++++++ security/vulsrepo/distinfo | 5 + security/vulsrepo/files/newsyslog-vulsrepo.conf | 6 + security/vulsrepo/files/patch-main.go | 12 ++ security/vulsrepo/files/pkg-message.in | 17 ++ security/vulsrepo/files/vulsrepo-config.toml.in | 12 ++ security/vulsrepo/files/vulsrepo.in | 52 +++++++ security/vulsrepo/pkg-descr | 2 + security/vulsrepo/pkg-message | 7 + security/vulsrepo/pkg-plist | 199 ++++++++++++++++++++++++ 11 files changed, 360 insertions(+) diff --git a/security/Makefile b/security/Makefile index 33e6b3715b06..c0405584553f 100644 --- a/security/Makefile +++ b/security/Makefile @@ -1354,6 +1354,7 @@ SUBDIR += vouch-proxy SUBDIR += vpnc SUBDIR += vuls + SUBDIR += vulsrepo SUBDIR += vuxml SUBDIR += vxquery SUBDIR += wapiti diff --git a/security/vulsrepo/Makefile b/security/vulsrepo/Makefile new file mode 100644 index 000000000000..bceccd252e95 --- /dev/null +++ b/security/vulsrepo/Makefile @@ -0,0 +1,47 @@ +PORTNAME= vulsrepo +PORTVERSION= 0.7.1 +DISTVERSIONPREFIX=v +CATEGORIES= security www +MASTER_SITES= https://raw.githubusercontent.com/${GH_ACCOUNT}/${PORTNAME}/v${PORTVERSION}/server/:gomod +DISTFILES= go.mod:gomod + +MAINTAINER= girgen@FreeBSD.org +COMMENT= Web presentation layer for vuls CVE scanner +WWW= https://github.com/ishiDACo/vulsrepo/ + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/../LICENSE.txt + +RUN_DEPENDS= vuls:security/vuls + +USES= go:modules tar:xz +USE_GITHUB= yes +GH_ACCOUNT= ishiDACo +GH_PROJECT= vulsrepo + +GO_MODULE= github.com/ishiDACo/vulsrepo/server +WRKSRC_SUBDIR= server + +USE_RC_SUBR= ${PORTNAME} + +SUB_FILES= pkg-message vulsrepo-config.toml +SUB_LIST= PORTNAME=${PORTNAME} USERS=${USERS} GROUPS=${GROUPS} + +USERS= vuls +GROUPS= vuls + +post-patch: + ${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},g' ${WRKSRC}/main.go + +post-install: + ${MKDIR} ${STAGEDIR}${WWWDIR} \ + ${STAGEDIR}/var/db/vuls/results \ + ${STAGEDIR}/var/log/vuls + ${INSTALL_DATA} ${FILESDIR}/newsyslog-${PORTNAME}.conf \ + ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/${PORTNAME}.conf.sample + ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}-config.toml \ + ${STAGEDIR}${PREFIX}/etc/${PORTNAME}-config.toml.sample + cd ${WRKSRC}/..; ${PAX} -rw dist gallery index.html plugins \ + ${STAGEDIR}${WWWDIR} + +.include <bsd.port.mk> diff --git a/security/vulsrepo/distinfo b/security/vulsrepo/distinfo new file mode 100644 index 000000000000..651252b75a22 --- /dev/null +++ b/security/vulsrepo/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1708504074 +SHA256 (go/security_vulsrepo/ishiDACo-vulsrepo-v0.7.1_GH0/go.mod) = 9edbb81a8563d5e37ec776fb3ae0fbab4b744b3f4943bcff15098acce3b1edb6 +SIZE (go/security_vulsrepo/ishiDACo-vulsrepo-v0.7.1_GH0/go.mod) = 247 +SHA256 (go/security_vulsrepo/ishiDACo-vulsrepo-v0.7.1_GH0/ishiDACo-vulsrepo-v0.7.1_GH0.tar.gz) = dc027c95fb35ba0cc7a02abf939109deafa7c6b20d7112900f8849ccec4b53ad +SIZE (go/security_vulsrepo/ishiDACo-vulsrepo-v0.7.1_GH0/ishiDACo-vulsrepo-v0.7.1_GH0.tar.gz) = 15285568 diff --git a/security/vulsrepo/files/newsyslog-vulsrepo.conf b/security/vulsrepo/files/newsyslog-vulsrepo.conf new file mode 100644 index 000000000000..8609c3a6ef0d --- /dev/null +++ b/security/vulsrepo/files/newsyslog-vulsrepo.conf @@ -0,0 +1,6 @@ +# configuration file for newsyslog for sqlpage +# +# see newsyslog.conf(5) for details +# +# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] +/var/log/vuls/vulsrepo.log vuls:vuls 640 7 100 * J /var/run/vulsrepo_daemon.pid diff --git a/security/vulsrepo/files/patch-main.go b/security/vulsrepo/files/patch-main.go new file mode 100644 index 000000000000..dcedd2ad513a --- /dev/null +++ b/security/vulsrepo/files/patch-main.go @@ -0,0 +1,12 @@ +--- main.go.orig 2021-12-20 04:40:08 UTC ++++ main.go +@@ -134,8 +134,7 @@ func loadConfig() { + } + + func loadConfig() { +- fpath, _ := (os.Executable()) +- _, err := toml.DecodeFile(filepath.Dir(fpath)+"/vulsrepo-config.toml", &config) ++ _, err := toml.DecodeFile("%%PREFIX%%/etc/vulsrepo-config.toml", &config) + if err != nil { + _, err := toml.DecodeFile("./vulsrepo-config.toml", &config) + if err != nil { diff --git a/security/vulsrepo/files/pkg-message.in b/security/vulsrepo/files/pkg-message.in new file mode 100644 index 000000000000..9a6370f5291c --- /dev/null +++ b/security/vulsrepo/files/pkg-message.in @@ -0,0 +1,17 @@ +[ +{ type: install + message: <<EOM +Congratulations, you have installed %%PORTNAME%%! + +Vulsrepo uses the reports saved by security/vuls to present packages' CVEs. +Follow the install directions for security/vuls to set it up to create reports. +Install vulsrepo in the same environment where you run the `vuls server'. Once +you have reports to present, edit %%PREFIX%%/etc/%%PORTNAME%%-config.toml to +your liking and start the service: + +sysrc %%PORTNAME%%_enable="YES" +service %%PORTNAME%% start + +EOM +} +] diff --git a/security/vulsrepo/files/vulsrepo-config.toml.in b/security/vulsrepo/files/vulsrepo-config.toml.in new file mode 100644 index 000000000000..23aa137f045c --- /dev/null +++ b/security/vulsrepo/files/vulsrepo-config.toml.in @@ -0,0 +1,12 @@ +[Server] +rootPath = "%%WWWDIR%%" +resultsPath = "/var/db/vuls/results" +serverPort = "5111" +#serverIP = "127.0.0.1" +#serverSSL = "yes" +#serverCert = "cert.pem" +#serverKey = "key.pem" + +#[Auth] +#authFilePath = "/home/vuls-user/.htdigest" +#realm = "vulsrepo_local" diff --git a/security/vulsrepo/files/vulsrepo.in b/security/vulsrepo/files/vulsrepo.in new file mode 100644 index 000000000000..6c4aad9795a4 --- /dev/null +++ b/security/vulsrepo/files/vulsrepo.in @@ -0,0 +1,52 @@ +#!/bin/sh + +# PROVIDE: %%PORTNAME%% +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# vulsrepo_enable (bool):r Set to NO by default +# Set it to YES to enable the CVE server +# vulsrepo_user (string): Set user to run vuls +# Default is "%%USERS%%" +# vulsrepo_group (string): Set group to run vuls +# Default is "%%GROUPS%%" +# vulsrepo_log_file (string): Set file that vuls will log to +# Default is "/var/log/vuls/vulsrepo.log" +# vulsrepo_flags (string): Set additional command line arguments +# Default is "" +# +# Set up vulsrepo using the config file: %%PREFIX%%/etc/vulsrepo-config.toml +# + +. /etc/rc.subr + +name=vulsrepo +rcvar=vulsrepo_enable + +load_rc_config $name + +: ${vulsrepo_enable:="NO"} +: ${vulsrepo_user:="%%USERS%%"} +: ${vulsrepo_group:="%%GROUPS%%"} +: ${vulsrepo_log_file:="/var/log/vuls/vulsrepo.log"} + +pidfile=/var/run/${name}.pid +pidfile_daemon=/var/run/${name}_daemon.pid +command="/usr/sbin/daemon" +procname="%%PREFIX%%/bin/%%PORTNAME%%" + +command_args="-p ${pidfile} -P ${pidfile_daemon} -t ${name} -Ho ${vulsrepo_log_file} ${procname}" + +start_precmd=vulsrepo_startprecmd + +vulsrepo_startprecmd() +{ + /usr/bin/install -o ${vulsrepo_user} -g ${vulsrepo_group} -m 640 /dev/null ${pidfile} + /usr/bin/install -o ${vulsrepo_user} -g ${vulsrepo_group} -m 640 /dev/null ${pidfile_daemon} +} + +load_rc_config $name +run_rc_command "$1" diff --git a/security/vulsrepo/pkg-descr b/security/vulsrepo/pkg-descr new file mode 100644 index 000000000000..cc5636d23fe9 --- /dev/null +++ b/security/vulsrepo/pkg-descr @@ -0,0 +1,2 @@ +Vulsrepo is a minimal custom web server presenting CVE vulnerability reports +created vy security/vuls. diff --git a/security/vulsrepo/pkg-message b/security/vulsrepo/pkg-message new file mode 100644 index 000000000000..fc357a1321c9 --- /dev/null +++ b/security/vulsrepo/pkg-message @@ -0,0 +1,7 @@ +[ +{ type: install + message: <<EOM +Vuls requires the cve.sqlite3 database provided by go-cve-dictionary +EOM +} +] diff --git a/security/vulsrepo/pkg-plist b/security/vulsrepo/pkg-plist new file mode 100644 index 000000000000..4fa1d73f8b43 --- /dev/null +++ b/security/vulsrepo/pkg-plist @@ -0,0 +1,199 @@ +bin/vulsrepo +@sample etc/newsyslog.conf.d/vulsrepo.conf.sample +@sample etc/vulsrepo-config.toml.sample +%%WWWDIR%%/dist/css/index.css +%%WWWDIR%%/dist/img/error.svg +%%WWWDIR%%/dist/img/loading.gif +%%WWWDIR%%/dist/img/ok.svg +%%WWWDIR%%/dist/img/loading_small.gif +%%WWWDIR%%/dist/js/vulsrepo.js +%%WWWDIR%%/dist/js/vulsrepo_common.js +%%WWWDIR%%/dist/js/vulsrepo_param.js +%%WWWDIR%%/gallery/delete-filter.png +%%WWWDIR%%/gallery/filter-04.png +%%WWWDIR%%/gallery/image005.png +%%WWWDIR%%/gallery/clear-filter.png +%%WWWDIR%%/gallery/filter-03.png +%%WWWDIR%%/gallery/pivot-table-setting.png +%%WWWDIR%%/gallery/image002.png +%%WWWDIR%%/gallery/priority.gif +%%WWWDIR%%/gallery/affected-processes.png +%%WWWDIR%%/gallery/cert-alert.png +%%WWWDIR%%/gallery/share-setting.png +%%WWWDIR%%/gallery/open-print-preview.png +%%WWWDIR%%/gallery/pivot-item-add-remove-move.gif +%%WWWDIR%%/gallery/filter-off.png +%%WWWDIR%%/gallery/filter-02.png +%%WWWDIR%%/gallery/image003.png +%%WWWDIR%%/gallery/item-filter.png +%%WWWDIR%%/gallery/filter-05.png +%%WWWDIR%%/gallery/detail-tab.png +%%WWWDIR%%/gallery/image004.png +%%WWWDIR%%/gallery/item-filtered.png +%%WWWDIR%%/gallery/multiselect.png +%%WWWDIR%%/gallery/detail-main.png +%%WWWDIR%%/gallery/daterange-custom.png +%%WWWDIR%%/gallery/demo.gif +%%WWWDIR%%/gallery/select-file-2.png +%%WWWDIR%%/gallery/mitigation.png +%%WWWDIR%%/gallery/references.png +%%WWWDIR%%/gallery/changelog.png +%%WWWDIR%%/gallery/image007.png +%%WWWDIR%%/gallery/filter-01.png +%%WWWDIR%%/gallery/save-filter.png +%%WWWDIR%%/gallery/detail-package.png +%%WWWDIR%%/gallery/daterange.png +%%WWWDIR%%/gallery/select-filter.png +%%WWWDIR%%/gallery/pivot-table-misc.png +%%WWWDIR%%/gallery/cweid.png +%%WWWDIR%%/gallery/image008.png +%%WWWDIR%%/gallery/image001.png +%%WWWDIR%%/gallery/cvss-chart.png +%%WWWDIR%%/gallery/image006.png +%%WWWDIR%%/gallery/hamburger.png +%%WWWDIR%%/gallery/exploits.png +%%WWWDIR%%/gallery/tsv-export.png +%%WWWDIR%%/gallery/multiselect-filter.png +%%WWWDIR%%/index.html +%%WWWDIR%%/plugins/jquery/jquery-3.6.0.min.js +%%WWWDIR%%/plugins/jquery.collapser.js/jquery.collapser.min.js +%%WWWDIR%%/plugins/pivot.js/pivot_spec.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.de.min.js +%%WWWDIR%%/plugins/pivot.js/gchart_renderers.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.it.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.tr.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.tr.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.de.min.js.map +%%WWWDIR%%/plugins/pivot.js/c3_renderers.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.it.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.da.min.js +%%WWWDIR%%/plugins/pivot.js/export_renderers.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.ru.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot_spec.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.ru.min.js +%%WWWDIR%%/plugins/pivot.js/d3_renderers.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.pt.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.da.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.nl.min.js +%%WWWDIR%%/plugins/pivot.js/export_renderers.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.pt.min.js.map +%%WWWDIR%%/plugins/pivot.js/LICENSE.md +%%WWWDIR%%/plugins/pivot.js/pivot.es.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.min.css +%%WWWDIR%%/plugins/pivot.js/d3_renderers.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.min.js +%%WWWDIR%%/plugins/pivot.js/c3_renderers.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.nl.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.zh.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.fr.min.js +%%WWWDIR%%/plugins/pivot.js/pivot.zh.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.fr.min.js.map +%%WWWDIR%%/plugins/pivot.js/pivot.min.js.map +%%WWWDIR%%/plugins/pivot.js/gchart_renderers.min.js.map +%%WWWDIR%%/plugins/pivot.js/tips_data.min.js +%%WWWDIR%%/plugins/pivot.js/export_renderers.js +%%WWWDIR%%/plugins/pivot.js/pivot.es.min.js.map +%%WWWDIR%%/plugins/datatables/datatables.min.js +%%WWWDIR%%/plugins/datatables/datatables.min.css +%%WWWDIR%%/plugins/jquery.balloon/jquery.balloon.min.js +%%WWWDIR%%/plugins/bootstrap-vertical-tabs/bootstrap.vertical-tabs.min.css +%%WWWDIR%%/plugins/bootstrap-vertical-tabs/LICENSE +%%WWWDIR%%/plugins/bootstrap-vertical-tabs/src/tabs.css +%%WWWDIR%%/plugins/bootstrap-vertical-tabs/src/tabs.sideways.css +%%WWWDIR%%/plugins/Chart.js/Chart.min.js +%%WWWDIR%%/plugins/clipboard.js/clipboard.min.js +%%WWWDIR%%/plugins/bootstrap-drawer/css/bootstrap-drawer.min.css +%%WWWDIR%%/plugins/bootstrap-drawer/js/drawer.min.js +%%WWWDIR%%/plugins/pathseg/LICENSE +%%WWWDIR%%/plugins/pathseg/pathseg.js +%%WWWDIR%%/plugins/bootstrapSwitch/bootstrap-switch.min.js +%%WWWDIR%%/plugins/bootstrapSwitch/bootstrap-switch.min.css +%%WWWDIR%%/plugins/bootstrapSwitch/LICENSE +%%WWWDIR%%/plugins/colorbox/jquery.colorbox-min.js +%%WWWDIR%%/plugins/colorbox/colorbox.css +%%WWWDIR%%/plugins/colorbox/images/loading.gif +%%WWWDIR%%/plugins/colorbox/images/loading_background.png +%%WWWDIR%%/plugins/colorbox/images/border.png +%%WWWDIR%%/plugins/colorbox/images/overlay.png +%%WWWDIR%%/plugins/colorbox/images/controls.png +%%WWWDIR%%/plugins/colorbox/LICENSE.md +%%WWWDIR%%/plugins/dynatree.js/MIT-License.txt +%%WWWDIR%%/plugins/dynatree.js/GPL-LICENSE.txt +%%WWWDIR%%/plugins/dynatree.js/jquery.dynatree.min.js +%%WWWDIR%%/plugins/dynatree.js/skin-vista/icons.gif +%%WWWDIR%%/plugins/dynatree.js/skin-vista/loading.gif +%%WWWDIR%%/plugins/dynatree.js/skin-vista/ui.dynatree.css +%%WWWDIR%%/plugins/dynatree.js/skin/icons-rtl.gif +%%WWWDIR%%/plugins/dynatree.js/skin/icons.gif +%%WWWDIR%%/plugins/dynatree.js/skin/ui.dynatree.css +%%WWWDIR%%/plugins/dynatree.js/skin/vline-rtl.gif +%%WWWDIR%%/plugins/dynatree.js/skin/vline.gif +%%WWWDIR%%/plugins/dynatree.js/skin/loading.gif +%%WWWDIR%%/plugins/jquery-ui/jquery-ui.min.css +%%WWWDIR%%/plugins/jquery-ui/jquery-ui.min.js +%%WWWDIR%%/plugins/jquery.ui.touch-punch/jquery.ui.touch-punch.min.js +%%WWWDIR%%/plugins/underscore.js/underscore-min.js +%%WWWDIR%%/plugins/daterangepicker/moment.min.js +%%WWWDIR%%/plugins/daterangepicker/daterangepicker.js +%%WWWDIR%%/plugins/daterangepicker/daterangepicker.css +%%WWWDIR%%/plugins/jquery.blockUI/jquery.blockUI.js +%%WWWDIR%%/plugins/slim-select/slimselect.min.css +%%WWWDIR%%/plugins/slim-select/slimselect.min.js +%%WWWDIR%%/plugins/bootstrap/css/bootstrap.min.css +%%WWWDIR%%/plugins/bootstrap/css/bootstrap.min.css.map +%%WWWDIR%%/plugins/bootstrap/js/bootstrap.min.js +%%WWWDIR%%/plugins/bootstrap/js/npm.js +%%WWWDIR%%/plugins/bootstrap/fonts/glyphicons-halflings-regular.svg +%%WWWDIR%%/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot +%%WWWDIR%%/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff +%%WWWDIR%%/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2 +%%WWWDIR%%/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf +%%WWWDIR%%/plugins/c3.js/LICENSE +%%WWWDIR%%/plugins/c3.js/c3.min.js +%%WWWDIR%%/plugins/c3.js/c3.min.css +%%WWWDIR%%/plugins/lz-string/LICENSE.txt +%%WWWDIR%%/plugins/lz-string/lz-string.min.js +%%WWWDIR%%/plugins/d3.js/LICENSE +%%WWWDIR%%/plugins/d3.js/d3.min.js +@dir %%WWWDIR%% +@dir %%WWWDIR%%/dist +@dir %%WWWDIR%%/dist/css +@dir %%WWWDIR%%/dist/img +@dir %%WWWDIR%%/dist/js +@dir %%WWWDIR%%/gallery +@dir %%WWWDIR%%/plugins +@dir %%WWWDIR%%/plugins/jquery +@dir %%WWWDIR%%/plugins/jquery.collapser.js +@dir %%WWWDIR%%/plugins/pivot.js +@dir %%WWWDIR%%/plugins/datatables +@dir %%WWWDIR%%/plugins/jquery.balloon +@dir %%WWWDIR%%/plugins/bootstrap-vertical-tabs +@dir %%WWWDIR%%/plugins/bootstrap-vertical-tabs/src +@dir %%WWWDIR%%/plugins/Chart.js +@dir %%WWWDIR%%/plugins/clipboard.js +@dir %%WWWDIR%%/plugins/bootstrap-drawer +@dir %%WWWDIR%%/plugins/bootstrap-drawer/css +@dir %%WWWDIR%%/plugins/bootstrap-drawer/js +@dir %%WWWDIR%%/plugins/pathseg +@dir %%WWWDIR%%/plugins/bootstrapSwitch +@dir %%WWWDIR%%/plugins/colorbox +@dir %%WWWDIR%%/plugins/colorbox/images +@dir %%WWWDIR%%/plugins/dynatree.js +@dir %%WWWDIR%%/plugins/dynatree.js/skin-vista +@dir %%WWWDIR%%/plugins/dynatree.js/skin +@dir %%WWWDIR%%/plugins/jquery-ui +@dir %%WWWDIR%%/plugins/jquery.ui.touch-punch +@dir %%WWWDIR%%/plugins/underscore.js +@dir %%WWWDIR%%/plugins/daterangepicker +@dir %%WWWDIR%%/plugins/jquery.blockUI +@dir %%WWWDIR%%/plugins/slim-select +@dir %%WWWDIR%%/plugins/bootstrap +@dir %%WWWDIR%%/plugins/bootstrap/css +@dir %%WWWDIR%%/plugins/bootstrap/js +@dir %%WWWDIR%%/plugins/bootstrap/fonts +@dir %%WWWDIR%%/plugins/c3.js +@dir %%WWWDIR%%/plugins/lz-string +@dir %%WWWDIR%%/plugins/d3.js +@dir(vuls,vuls,0775) /var/db/vuls/results +@dir(vuls,vuls,0775) /var/db/vuls +@dir(vuls,vuls,0775) /var/log/vuls