#!/bin/sh # # (c) spd_at_daphne.cps.unizar.es # Tue Nov 23 13:54:27 MET 2004 # License: Cantoware - Si te gusta ya te puedes dar con un canto en los dientes # # This script change some user password # Needs: root privileges # Needs: crp # ECHO=/usr/bin/echo DO=echo usage() { echo "Use: `basename $0` [-hqn] name [new_password]" echo "-q: quiet" echo "-n: do nothing" echo "-y: do it" } set -- `getopt hqyn $*` for i in $* do case $i in -q) ECHO=:; shift;; -n) DO=echo; shift;; -y) DO=; shift;; -h) usage exit 0 ;; esac done if [ $# -lt 2 ] then usage exit 1 fi umask 077 set -e name=$2 upass="$3" if [ "_$upass" = "_" ] then upass=`mkpw.pl` $ECHO "# Using new password: \"$upass\" for \"$name\"" fi pass=`/usr/local/etc/crp "$upass"` domain=`domainname` $DO : "## Warning! doing nothing (use -y)" $ECHO "#### Creating/Updating DES and LOCAL credentials..." uid=`nismatch $name passwd.org_dir | awk -F: '{print $3}'` $ECHO "# user: $name" $ECHO "# passwd: $upass ($pass)" $ECHO "# domain: $domain" $ECHO "# uid: $uid" $DO nisaddcred \ -p$uid -P$name.${domain}. -l "$upass" local ${domain}. $DO nisaddcred \ -punix.$uid@${domain} -P$name.${domain}. -l "$upass" des ${domain}. #$DO nischown $name.$domain. "[uid=$uid],passwd.org_dir" #$DO nischown $name.$domain. \ # "[cname=$name.$domain.,auth_type=DES],cred.org_dir" echo "#### Cred updated" if [ "_$DO" != "echo" ] then echo "#### Creating/Updating Unix password..." # name:passwd:uid:gid:gcos:home:shell:shadow $DO nistbladm -m passwd="$pass" "[name=$name]",passwd.org_dir # lastchg min max warn inactive expire flag $DO nistbladm -m shadow="11250:0:99999:7:::134536908" "[name=$name]",passwd.org_dir fi $ECHO "#### NIS+ updated"