git: 952fa7cc8e66 - main - security/vulsrepo: new port

From: Palle Girgensohn <girgen_at_FreeBSD.org>
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