#!/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 uid field in NIS+ database # Needs: root privileges # It will not change uid of user files nor disk quotas. # ECHO=/usr/bin/echo DO= usage() { echo "Use: `basename $0` [-hqn] name newuid" 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 newuid=$3 name=$2 expr "$newuid" : '^[1-9][0-9]*' > /dev/null 2>&1 || ( echo \""$newuid"\" is not a valid uid usage exit 1 ) olduid=`/usr/bin/id $name | sed -e 's/^uid=//' -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 uid=$newuid "[name=$name]",passwd.org_dir $DO nistbladm -m auth_name=$newuid \ "[cname=$name.$domain.,auth_type=LOCAL]",cred.org_dir $DO nistbladm -m auth_name=unix.$newuid@$domain \ "[cname=$name.$domain.,auth_type=DES]",cred.org_dir $DO nischown $name.$domain. "[uid=$newuid],passwd.org_dir" $DO nischown $name.$domain. \ "[cname=$name.$domain.,auth_type=DES],cred.org_dir" ) || \ echo user \"$name\" not found