--- /usr/sbin/webapp-config.old 2005-09-24 15:16:37.704322136 +0200 +++ /usr/sbin/webapp-config 2005-09-24 15:53:46.948144808 +0200 @@ -1583,16 +1583,21 @@ # make sure that the user and group are setup and working # - # using 'id' means that we can only accept usernames and - # group names. UIDs and GIDs aren't supported by id(1) - - libsh_everbose libsh_einfo "Checking that the username:group '$G_CONFIG_UID:$G_CONFIG_GID' is valid" - - if ! $(getent passwd | grep -q "$G_CONFIG_UID" > /dev/null 2>&1) ; then - libsh_edie "'$G_CONFIG_UID' is not a valid username" - fi - if ! $(getent group | grep -q "$G_CONFIG_GID" > /dev/null 2>&1) ; then - libsh_edie "'$G_CONFIG_GID' is not a valid group name" + + # dispatch on type ;) but you can't mix names and numbers + if [[ "$G_CONFIG_UID" = *[^0-9]* ]];then + FNUM=1; + libsh_everbose libsh_einfo "Checking that the username:group '$G_CONFIG_UID:$G_CONFIG_GID' are valid" + else + FNUM=3; + libsh_everbose libsh_einfo "Checking that the uid:gid numbers '$G_CONFIG_UID:$G_CONFIG_GID' are valid" + fi + #echo $FNUM + if [ -z "$(getent passwd | cut -d':' -f $FNUM | grep -w "$G_CONFIG_UID")" ]; then + libsh_edie "'$G_CONFIG_UID' is not a valid username/user id" + fi + if [ -z "$(getent group | cut -d':' -f $FNUM | grep -w "$G_CONFIG_GID")" ]; then + libsh_edie "'$G_CONFIG_GID' is not a valid group name/ group id" fi if [ "$( basename \"$G_INSTALLDIR\" )" = "htdocs" ] ; then