/var/lib/pcp/testsuite/994 is in pcp-testsuite 3.8.12ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #!/bin/sh
# PCP QA Test No. 994
# Try to check permissions of package artifacts.
#
# See src/mkpermslist and src/permslist.
#
# Copyright (c) 2013 Ken McDonell. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
status=0 # success is the default!
$sudo rm -rf $tmp.* $seq.full
trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15
if [ ! -f src/permslist ]
then
echo "Arrgh .. src/permslist is missing. Need to"
echo " $ cd src; ./mkpermslist"
echo "in a git tree containg the PCP source and then try again."
status=1
exit
fi
# real QA test starts here
# permslist format ...
# src/pmdas/mmv/GNUmakefile|1777|root|root|/var/tmp/mmv
# but also need to expand PCP env vars we expect to find
sed -e 's/ /\\ /g' -e 's/|/ /g' <src/permslist \
-e 's@$(PCP_USER)@'$PCP_USER@g \
-e 's@$(PCP_GROUP)@'$PCP_GROUP@g \
-e 's@$(PCP_PMLOGGERCONTROL_PATH)@'$PCP_PMLOGGERCONTROL_PATH@g \
-e 's@$(PCP_PMIECONTROL_PATH)@'$PCP_PMIECONTROL_PATH@g \
-e 's@$(PCP_TMP_DIR)@'$PCP_TMP_DIR@g \
-e 's@$(PCP_LOG_DIR)@'$PCP_LOG_DIR@g \
-e 's@$(PCP_VAR_DIR)@'$PCP_VAR_DIR@g \
-e 's@$(PCP_RUN_DIR)@'$PCP_RUN_DIR@g \
-e 's@$(PCP_SYSCONF_DIR)@'$PCP_SYSCONF_DIR@g \
| while read makefile mode owner group target optional
do
if [ ! -f "$target" -a ! -d "$target" ]
then
[ -z "$optional" ] && \
echo "Error: $target: not found, should have been installed from $makefile"
else
# stat line of interest ...
# Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
#
_mode=""
_owner=""
_group=""
eval `stat $target | sed -n -e '/^Access:.*Uid:.*Gid:/{
s/Access: *(/_mode=/
s/\/.*) *Uid: *( *[0-9][0-9]*\/ */ _owner=/
s/) *Gid: *( *[0-9][0-9]*\/ */ _group=/
s/).*//
s/=0*/=/g
p
}'`
if [ -z "$_mode" -o -z "$_owner" -o -z "$_group" ]
then
echo "Arrgh, failed to extract mode, owner and group from stat(1) output ..."
stat $target
status=1
break
fi
#debug# echo "$target: mode: have $_mode expect $mode"
#debug# echo "$target: owner: have $_owner expect $owner"
#debug# echo "$target: group: have $_group expect $group"
if [ "$_mode" != "$mode" ]
then
echo "$target: wrong mode: expected $mode (from $makefile), found $_mode"
fi
if [ "$_owner" != "$owner" ]
then
echo "$target: wrong owner: expected $owner (from $makefile), found $_owner"
fi
if [ "$_group" != "$group" ]
then
echo "$target: wrong group: expected $group (from $makefile), found $_group"
fi
fi
done
# success, all done
status=0
exit
|