From 863c47d3a8bb2fababe76d695ae698ccf74c3e97 Mon Sep 17 00:00:00 2001 From: asomers Date: Tue, 28 Nov 2017 17:27:00 +0000 Subject: [PATCH] MFC r322868: Fix 100.chksetuid and 110.neggrpperm for mountpoints with spaces Also, fix them for mountpoints with tabs. PR: 48325 Reported by: pguyot@kallisys.net, aaron@baugher.biz git-svn-id: svn://svn.freebsd.org/base/stable/10@326326 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- etc/periodic/security/100.chksetuid | 8 +++++++- etc/periodic/security/110.neggrpperm | 8 +++++++- etc/periodic/security/security.functions | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/etc/periodic/security/100.chksetuid b/etc/periodic/security/100.chksetuid index da8d29d98..670ae9792 100755 --- a/etc/periodic/security/100.chksetuid +++ b/etc/periodic/security/100.chksetuid @@ -45,7 +45,13 @@ if check_yesno_period security_status_chksetuid_enable then echo "" echo 'Checking setuid files and devices:' - MP=`mount -t ufs,zfs | awk '$0 !~ /no(suid|exec)/ { print $3 }'` + IFS=$'\n' # Don't split mount points with spaces or tabs + MP=`mount -t ufs,zfs | awk ' + $0 !~ /no(suid|exec)/ { + sub(/^.* on \//, "/"); + sub(/ \(.*\)/, ""); + print $0 + }'` find -sx $MP /dev/null \( ! -fstype local \) -prune -o -type f \ \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ \( -perm -u+s -or -perm -g+s \) -exec ls -liTd \{\} \+ | diff --git a/etc/periodic/security/110.neggrpperm b/etc/periodic/security/110.neggrpperm index bd9401595..55974eae6 100755 --- a/etc/periodic/security/110.neggrpperm +++ b/etc/periodic/security/110.neggrpperm @@ -43,7 +43,13 @@ if check_yesno_period security_status_neggrpperm_enable then echo "" echo 'Checking negative group permissions:' - MP=`mount -t ufs,zfs | awk '$0 !~ /no(suid|exec)/ { print $3 }'` + IFS=$'\n' # Don't split mount points with spaces or tabs + MP=`mount -t ufs,zfs | awk ' + $0 !~ /no(suid|exec)/ { + sub(/^.* on \//, "/"); + sub(/ \(.*\)/, ""); + print $0 + }'` n=$(find -sx $MP /dev/null \( ! -fstype local \) -prune -o -type f \ \( \( ! -perm +010 -and -perm +001 \) -or \ \( ! -perm +020 -and -perm +002 \) -or \ diff --git a/etc/periodic/security/security.functions b/etc/periodic/security/security.functions index c2c757a37..00a89075d 100644 --- a/etc/periodic/security/security.functions +++ b/etc/periodic/security/security.functions @@ -48,6 +48,7 @@ rc=0 # LABEL is the base name of the ${LOG}/${label}.{today,yesterday} files. check_diff() { + unset IFS rc=0 if [ "$1" = "new_only" ]; then shift -- 2.42.0