63 lines · 1.0 KB · Text
RawDownload
#!/bin/rc# very coraid-specificrfork e fn warn{	echo /lib/ndb/$o(3): $* >[1=2]} fn uidtab{	uidtab = ()	uidtab0 = `{awk -F: '{print $2 " " $1}' < /adm/users}	oktab = `{sed -n 's/^([^	]+)	ok$/\1/p' </adm/keystat}	while(! ~ $#uidtab0 0){		x = $uidtab0(1-2)		uidtab0 = $uidtab0(3-)		if(~ $x(1) sys || ~ $x(1) $oktab)			uidtab = ($uidtab $x)	}} fn okayuser {	w=0	if(! ~ $o(1) $uidtab){		w = 1		warn unknown or expired user: $o(1)	}	if(! ~ $o(2) sys coraid)		warn bad group: $o(2) 	if(! ~ $w 1 && ~ $o(3) 10.220.[0-9]*){		x = $uidtab;		uid = ()		while(! ~ $#x 0){			y=$x(1-2)			x=$x(3-)			if(~ $y(1) $o(1)){				uid=$y(2)				break			}		}		if(! ~ $o(3) 10.220.$uid)		if(! ~ $o(3) 10.220.1 10.220.9 10.220.42)			warn uid mismatch want $uid	}} uidtabcd /lib/ndbstat = `{ls -l | 	grep -v ' (nfs|dnsdump|.*\.group|.*password)$' |	awk '{print $4 " " $5 " " $NF}'	}chk=()while(! ~ $#stat 0){	o=$stat(1-3)	stat=$stat(4-)	okayuser	if(~ $o(3) 10.220.*)		chk = ($chk $o(3))} if(! ~ $#chk 0)	ndb/vrfy -m 10.220.0.0/112 $chk