瀏覽代碼

Dedicated to Thomas L.: Be more careful in parsing /etc/passwd & /etc/group related to multiple entries. Additionally fully quote output to be safe related to contained whitespaces.

master
父節點
當前提交
4ee27ed348
  1. 24
      openpkg/aux.usrgrp.sh
  2. 4
      openpkg/openpkg.spec

24
openpkg/aux.usrgrp.sh

@ -68,9 +68,9 @@ cusr=`(id -un) 2>/dev/null ||\
(who am i | cut "-d " -f1) 2>/dev/null ||\
echo $LOGNAME`
cgid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
grep "^${cusr}:" | awk -F: '{ print $4; }'`
grep "^${cusr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'`
cgrp=`(cat /etc/group; ypcat group) 2>/dev/null |\
grep ":${cgid}:" | awk -F: '{ print $1; }'`
grep ":${cgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'`
[ ".$cgrp" = . ] && cgrp="$cusr"
# determine OpenPKG susr/sgrp
@ -79,10 +79,10 @@ if [ ".$susr" = . ]; then
fi
if [ ".$sgrp" = . ]; then
sgid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
grep "^${susr}:" | awk -F: '{ print $4; }'`
grep "^${susr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'`
if [ ".$sgid" != . ]; then
sgrp=`(cat /etc/group; ypcat group) 2>/dev/null |\
grep ":${sgid}:" | awk -F: '{ print $1; }'`
grep ":${sgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'`
fi
if [ ".$sgrp" = . ]; then
sgrp="wheel"
@ -98,10 +98,10 @@ if [ ".$musr" = . ]; then
fi
if [ ".$mgrp" = . ]; then
mgid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
grep "^${musr}:" | awk -F: '{ print $4; }'`
grep "^${musr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'`
if [ ".$mgid" != . ]; then
mgrp=`(cat /etc/group; ypcat group) 2>/dev/null |\
grep ":${mgid}:" | awk -F: '{ print $1; }'`
grep ":${mgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'`
fi
if [ ".$mgrp" = . ]; then
mgrp="$grp"
@ -120,10 +120,10 @@ if [ ".$rusr" = ".-r" ]; then
fi
if [ ".$rgrp" = . ]; then
rgid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
grep "^${rusr}:" | awk -F: '{ print $4; }'`
grep "^${rusr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'`
if [ ".$rgid" != . ]; then
rgrp=`(cat /etc/group; ypcat group) 2>/dev/null |\
grep ":${rgid}:" | awk -F: '{ print $1; }'`
grep ":${rgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'`
fi
if [ ".$rgrp" = . ]; then
rgrp="${grp}-r"
@ -142,10 +142,10 @@ if [ ".$nusr" = ".-n" ]; then
fi
if [ ".$ngrp" = . ]; then
ngid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
grep "^${nusr}:" | awk -F: '{ print $4; }'`
grep "^${nusr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'`
if [ ".$ngid" != . ]; then
ngrp=`(cat /etc/group; ypcat group) 2>/dev/null |\
grep ":${ngid}:" | awk -F: '{ print $1; }'`
grep ":${ngid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'`
fi
if [ ".$ngrp" = . ]; then
ngrp="${grp}-n"
@ -164,9 +164,9 @@ for var in \
nusr ngrp; do
eval "val=\"\$$var\""
if [ ".$output" = . ]; then
output="$var=$val"
output="$var=\"$val\""
else
output="$output; $var=$val"
output="$output; $var=\"$val\""
fi
done
echo $output

4
openpkg/openpkg.spec

@ -39,8 +39,8 @@
# o any cc(1)
# the package version and release
%define V_openpkg 20020311
%define R_openpkg 20020311
%define V_openpkg 20020312
%define R_openpkg 20020312
# the used software versions
%define V_rpm 4.0.2

載入中…
取消
儲存