1.1 --- a/openpkg/aux.usrgrp.sh Tue Jul 31 12:27:54 2012 +0200 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,222 +0,0 @@ 1.4 -#!/bin/sh 1.5 -## 1.6 -## usrgrp.sh -- user/group name/id determination 1.7 -## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> 1.8 -## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> 1.9 -## 1.10 -## Permission to use, copy, modify, and distribute this software for 1.11 -## any purpose with or without fee is hereby granted, provided that 1.12 -## the above copyright notice and this permission notice appear in all 1.13 -## copies. 1.14 -## 1.15 -## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 1.16 -## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1.17 -## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1.18 -## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR 1.19 -## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.20 -## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1.21 -## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 1.22 -## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 1.23 -## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1.24 -## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 1.25 -## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1.26 -## SUCH DAMAGE. 1.27 -## 1.28 - 1.29 -# command line parameters (defaults) 1.30 -help=0 1.31 -usr=''; grp='' 1.32 -susr=''; sgrp='' 1.33 -musr=''; mgrp='' 1.34 -rusr=''; rgrp='' 1.35 -nusr=''; ngrp='' 1.36 -suid=''; sgid='' 1.37 -muid=''; mgid='' 1.38 -ruid=''; rgid='' 1.39 -nuid=''; ngid='' 1.40 - 1.41 -# parse command line options 1.42 -for opt 1.43 -do 1.44 - case $opt in 1.45 - -*=*) arg=`echo "$opt" | sed 's/^[-_a-zA-Z0-9]*=//'` ;; 1.46 - *) arg='' ;; 1.47 - esac 1.48 - case $opt in 1.49 - -h | --help ) help=1 ;; 1.50 - --usr=* | --user=* ) usr=$arg ;; 1.51 - --grp=* | --group=* ) grp=$arg ;; 1.52 - --susr=* ) susr=$arg ;; 1.53 - --sgrp=* ) sgrp=$arg ;; 1.54 - --musr=* ) musr=$arg ;; 1.55 - --mgrp=* ) mgrp=$arg ;; 1.56 - --rusr=* ) rusr=$arg ;; 1.57 - --rgrp=* ) rgrp=$arg ;; 1.58 - --nusr=* ) nusr=$arg ;; 1.59 - --ngrp=* ) ngrp=$arg ;; 1.60 - --suid=* ) suid=$arg ;; 1.61 - --sgid=* ) sgid=$arg ;; 1.62 - --muid=* ) muid=$arg ;; 1.63 - --mgid=* ) mgid=$arg ;; 1.64 - --ruid=* ) ruid=$arg ;; 1.65 - --rgid=* ) rgid=$arg ;; 1.66 - --nuid=* ) nuid=$arg ;; 1.67 - --ngid=* ) ngid=$arg ;; 1.68 - * ) help=1 ;; 1.69 - esac 1.70 -done 1.71 -if [ ".$help" = .1 ]; then 1.72 - echo "Usage: sh $0 [-h|--help]" 2>&1 1.73 - echo " [--[smrn]?usr=<usr>] [--[smrn]?grp=<usr>]" 2>&1 1.74 - echo " [--[smrn]uid=<uid>] [--[smrn]gid=<gid>]" 2>&1 1.75 - exit 1 1.76 -fi 1.77 - 1.78 -# determine cusr/cgrp 1.79 -cusr=`(id -un) 2>/dev/null ||\ 1.80 - (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\ 1.81 - (whoami) 2>/dev/null ||\ 1.82 - (who am i | cut "-d " -f1) 2>/dev/null ||\ 1.83 - echo $LOGNAME` 1.84 -cgid=`(id -g $cusr) 2>/dev/null ||\ 1.85 - ((getent passwd "${cusr}"; grep "^${cusr}:" /etc/passwd; ypmatch "${cusr}" passwd; nismatch "${cusr}" passwd; nidump passwd . | grep "^${cusr}:") 2>/dev/null |\ 1.86 - sed -n -e '1p' | awk -F: '{ print $4; }')` 1.87 -cgrp=`(id -gn $cusr) 2>/dev/null ||\ 1.88 - ((getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null | grep "^[^:]*:[^:]*:${cgid}:" |\ 1.89 - sed -n -e '1p' | awk -F: '{ print $1; }')` 1.90 -[ ".$cgrp" = . ] && cgrp="$cusr" 1.91 - 1.92 -# determine OpenPKG susr/sgrp 1.93 -if [ ".$susr" = . ]; then 1.94 - if [ ".$usr" = . ]; then 1.95 - susr="$cusr" 1.96 - else 1.97 - susr="root" 1.98 - fi 1.99 -fi 1.100 -if [ ".$sgrp" = . ]; then 1.101 - sgrp=`(id -gn $susr) 2>/dev/null` 1.102 - if [ ".$sgrp" = . ]; then 1.103 - tgid=`(getent passwd "${susr}"; grep "^${susr}:" /etc/passwd; ypmatch "${susr}" passwd; nismatch "${susr}" passwd; nidump passwd . | grep "^${susr}:") 2>/dev/null |\ 1.104 - sed -n -e '1p' | awk -F: '{ print $4; }'` 1.105 - if [ ".$tgid" != . ]; then 1.106 - sgid="${tgid}" 1.107 - sgrp=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ 1.108 - grep "^[^:]*:[^:]*:${sgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` 1.109 - fi 1.110 - if [ ".$sgrp" = . ]; then 1.111 - sgrp="wheel" 1.112 - fi 1.113 - fi 1.114 -fi 1.115 - 1.116 -# determine OpenPKG musr/mgrp 1.117 -if [ ".$musr" = . ]; then 1.118 - musr="$usr" 1.119 -fi 1.120 -if [ ".$musr" = . ]; then 1.121 - musr="$cusr" 1.122 -fi 1.123 -if [ ".$mgrp" = . ]; then 1.124 - mgrp=`(id -gn $musr) 2>/dev/null` 1.125 - if [ ".$mgrp" = . ]; then 1.126 - tgid=`(getent passwd "${musr}"; grep "^${musr}:" /etc/passwd; ypmatch "${musr}" passwd; nismatch "${musr}" passwd; nidump passwd . | grep "^${musr}:") 2>/dev/null |\ 1.127 - sed -n -e '1p' | awk -F: '{ print $4; }'` 1.128 - if [ ".$tgid" != . ]; then 1.129 - mgid="${tgid}" 1.130 - mgrp=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ 1.131 - grep "^[^:]*:[^:]*:${mgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` 1.132 - fi 1.133 - if [ ".$mgrp" = . ]; then 1.134 - mgrp="$grp" 1.135 - fi 1.136 - if [ ".$mgrp" = . ]; then 1.137 - mgrp="$cgrp" 1.138 - fi 1.139 - fi 1.140 -fi 1.141 - 1.142 -# determine OpenPKG rusr/rgrp 1.143 -if [ ".$rusr" = . ]; then 1.144 - rusr="${usr}-r" 1.145 -fi 1.146 -if [ ".$rusr" = ".-r" ]; then 1.147 - rusr="$cusr" 1.148 -fi 1.149 -if [ ".$rgrp" = . ]; then 1.150 - rgrp=`(id -gn $rusr) 2>/dev/null` 1.151 - if [ ".$rgrp" = . ]; then 1.152 - tgid=`(getent passwd "${rusr}"; grep "^${rusr}:" /etc/passwd; ypmatch "${rusr}" passwd; nismatch "${rusr}" passwd; nidump passwd . | grep "^${rusr}:") 2>/dev/null |\ 1.153 - sed -n -e '1p' | awk -F: '{ print $4; }'` 1.154 - if [ ".$tgid" != . ]; then 1.155 - rgid="${tgid}" 1.156 - rgrp=`(getent group; cat /etc/group; ypcat group; nismatch group; nidump group .) 2>/dev/null |\ 1.157 - grep "^[^:]*:[^:]*:${rgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` 1.158 - fi 1.159 - if [ ".$rgrp" = . ]; then 1.160 - rgrp="${grp}-r" 1.161 - fi 1.162 - if [ ".$rgrp" = ".-r" ]; then 1.163 - rgrp="$cgrp" 1.164 - fi 1.165 - fi 1.166 -fi 1.167 - 1.168 -# determine OpenPKG nusr/ngrp 1.169 -if [ ".$nusr" = . ]; then 1.170 - nusr="${usr}-n" 1.171 -fi 1.172 -if [ ".$nusr" = ".-n" ]; then 1.173 - nusr="$cusr" 1.174 -fi 1.175 -if [ ".$ngrp" = . ]; then 1.176 - ngrp=`(id -gn $nusr) 2>/dev/null` 1.177 - if [ ".$ngrp" = . ]; then 1.178 - tgid=`(getent passwd "${nusr}"; grep "^${nusr}:" /etc/passwd; ypmatch "${nusr}" passwd; nismatch "${nusr}" passwd; nidump passwd . | grep "^${nusr}:") 2>/dev/null |\ 1.179 - sed -n -e '1p' | awk -F: '{ print $4; }'` 1.180 - if [ ".$tgid" != . ]; then 1.181 - ngid="${tgid}" 1.182 - ngrp=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ 1.183 - grep "^[^:]*:[^:]*:${ngid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` 1.184 - fi 1.185 - if [ ".$ngrp" = . ]; then 1.186 - ngrp="${grp}-n" 1.187 - fi 1.188 - if [ ".$ngrp" = ".-n" ]; then 1.189 - ngrp="$cgrp" 1.190 - fi 1.191 - fi 1.192 -fi 1.193 - 1.194 -# determine OpenPKG suid/sgid 1.195 -# (currently not necessary) 1.196 - 1.197 -# determine OpenPKG muid/mgid 1.198 -# (currently not necessary) 1.199 - 1.200 -# determine OpenPKG ruid/rgid 1.201 -# (currently not necessary) 1.202 - 1.203 -# determine OpenPKG nuid/ngid 1.204 -# (currently not necessary) 1.205 - 1.206 -# print results 1.207 -output="" 1.208 -for var in \ 1.209 - susr sgrp \ 1.210 - musr mgrp \ 1.211 - rusr rgrp \ 1.212 - nusr ngrp \ 1.213 - suid sgid \ 1.214 - muid mgid \ 1.215 - ruid rgid \ 1.216 - nuid ngid; do 1.217 - eval "val=\"\$$var\"" 1.218 - if [ ".$output" = . ]; then 1.219 - output="$var=\"$val\"" 1.220 - else 1.221 - output="$output; $var=\"$val\"" 1.222 - fi 1.223 -done 1.224 -echo $output 1.225 -