portaudit と DISABLE_VULNERABILITIES ― 2006年10月30日 10時04分18秒
ただ、ports を更新時に portaudit が自動的に呼び出されるために、脆弱性があるのが見つかると更新を止めてしまうのが、時によっては頭痛の種だ。
そこで、DISABLE_VULNERABILITIES=yes とすることにより、ports 更新時の自動点検を無効にすることが出来る。ports/Mk/bsd.ports.mk によると、
check-vulnerable:
.if !defined(DISABLE_VULNERABILITIES) && !defined(PACKAGE_BUILDING)
@if [ -f "${AUDITFILE}" ]; then \
audit_created=`${_EXTRACT_AUDITFILE} | \
${SED} -nEe "1s/^#CREATED: *([0-9]{4})-?([0-9]{2})-?([0-9]{2}).*$$/\
1\2\3/p"`; \
audit_expiry=`/bin/date -u -v-14d "+%Y%m%d"`; \
if [ "$$audit_created" -lt "$$audit_expiry" ]; then \
${ECHO_MSG} "===> WARNING: Vulnerability database out of date, chec
king anyway"; \
fi; \
vlist=`${_EXTRACT_AUDITFILE} | ${GREP} "${PORTNAME}" | \
${AWK} -F\| ' /^[^#]/ { \
if (!system("${PKG_VERSION} -T \"${PKGNAME}\" \"" $$1 "\"")) \
print "=> " $$3 ".\n Reference: <" $$2 ">" \
} \
'`; \
if [ -n "$$vlist" ]; then \
${ECHO_MSG} "===> ${PKGNAME} has known vulnerabilities:"; \
${ECHO_MSG} "$$vlist"; \
${ECHO_MSG} "=> Please update your ports tree and try again."; \
exit 1; \
fi; \
else \
${ECHO_MSG} "===> Vulnerability check disabled, database not found"; \
fi
.endif
いきなり、.if !defined(DISABLE_VULNERABILITIES) && !defined(PACKAGE_BUILDING) があるので、DISABLE_VULNERABILITIES 有効、つまり portautio を使うのが無効になっていると、portaudit が入っていないのと同じように動作する。
基本的には ports 更新時に portaudit が起動されるのに不満はないのだが、選べないのには困ったことがある。事情があって更新できない場合に、止まってしまうのだ。出来れば、ユーザの入力を待って、脆弱性があるのを黙認しつつ更新してくれたら嬉しいのだが。
今は、portautit は入っているが、ports 更新時には無効になるようにしている。ports 更新後に、手動で portaudit を起動すればいいだけなので、ソースに手をいれる程、欲しい機能ではない。
最近のコメント