#!/bin/sh

#
# (c) spd_at_daphne.cps.unizar.es
# Thu Nov 18 09:05:31 CET 2004
# License: Cantoware - Si te gusta ya te puedes dar con un canto en los dientes
#
# This script change some user gid field in NIS+ database
# Needs: root privileges
#

ECHO=/usr/bin/echo
DO=

usage()
{
	echo "Use: `basename $0` [-hqn] name newgid"
	echo "-q: quiet"
	echo "-n: do nothing"
}

set -- `getopt hqn $*`
for i in $*
do
	case $i in
	-q) ECHO=:; shift;;
	-n) DO=echo; shift;;
	-h)
		usage
		exit 0
		;;
	esac
done

if [ $# -ne 3 ]
then
	usage
	exit 1
fi

umask 077

set -e

name=$2
newgid=$3

expr "$newgid" : '^[1-9][0-9]*' > /dev/null 2>&1 || (
	echo \""$newgid"\" is not a valid gid
	usage
	exit 1
)

oldgid=`/usr/bin/id $name | sed -e 's/^.*gid=//' -e 's/(.*//'`


domain=`domainname`

# passwd # name passwd uid gid gcos home shell shadow
# cred # cname auth_type auth_name public_data private_data

nismatch name=$name passwd.org_dir && \
(
	$DO nistbladm -m gid=$newgid "[name=$name]",passwd.org_dir
	$DO nistbladm -m public_data=$newgid \
	"[cname=$name.$domain.,auth_type=LOCAL]",cred.org_dir
) || \
echo user \"$name\" not found



