#!/bin/sh PW_F=./passwd PW_L=13 PW="$1" [ "$PW" ] || { echo "E: need a passwd argument" exit 1 } [ ${#PW} -eq $PW_L ] || { echo "E: passwd argument length must be $PW_L" exit 1 } # tweak the passwd file with fall back, in case of a problem ;-) mv $PW_F $PW_F.old if sed -e "s,^\(root\):[^:]*:\(.*\)$,\1:$PW:\2," $PW_F.old > $PW_F then rm -f $PW_F.old else mv $PW_F.old $PW_F fi exit 0