181ea85a8SBrad Davis#!/bin/sh 281ea85a8SBrad Davis# 381ea85a8SBrad Davis# 481ea85a8SBrad Davis 581ea85a8SBrad Davis# If there is a global system configuration file, suck it in. 681ea85a8SBrad Davis# 781ea85a8SBrad Davisif [ -r /etc/defaults/periodic.conf ] 881ea85a8SBrad Davisthen 981ea85a8SBrad Davis . /etc/defaults/periodic.conf 1081ea85a8SBrad Davis source_periodic_confs 1181ea85a8SBrad Davisfi 1281ea85a8SBrad Davis 1381ea85a8SBrad Daviscase "$daily_backup_passwd_enable" in 1481ea85a8SBrad Davis [Yy][Ee][Ss]) 1581ea85a8SBrad Davis if [ ! -f /etc/master.passwd ] 1681ea85a8SBrad Davis then 1781ea85a8SBrad Davis echo '$daily_backup_passwd_enable" is set but /etc/master.passwd' \ 1881ea85a8SBrad Davis "doesn't exist" 1981ea85a8SBrad Davis rc=2 2081ea85a8SBrad Davis elif [ ! -f /etc/group ] 2181ea85a8SBrad Davis then 2281ea85a8SBrad Davis echo '$daily_backup_passwd_enable" is set but /etc/group' \ 2381ea85a8SBrad Davis "doesn't exist" 2481ea85a8SBrad Davis rc=2 2581ea85a8SBrad Davis else 2681ea85a8SBrad Davis bak=/var/backups 2781ea85a8SBrad Davis rc=0 2881ea85a8SBrad Davis 2981ea85a8SBrad Davis echo "" 3081ea85a8SBrad Davis echo "Backup passwd and group files:" 3181ea85a8SBrad Davis 3281ea85a8SBrad Davis if [ ! -f $bak/master.passwd.bak ] 3381ea85a8SBrad Davis then 3481ea85a8SBrad Davis rc=1 3581ea85a8SBrad Davis echo "no $bak/master.passwd.bak" 3681ea85a8SBrad Davis cp -p /etc/master.passwd $bak/master.passwd.bak || rc=3 3781ea85a8SBrad Davis fi 3881ea85a8SBrad Davis 3981ea85a8SBrad Davis if ! cmp -s $bak/master.passwd.bak /etc/master.passwd 4081ea85a8SBrad Davis then 4181ea85a8SBrad Davis [ $rc -lt 1 ] && rc=1 4281ea85a8SBrad Davis echo "$host passwd diffs:" 43*e2f6bafcSMichael Osipov diff ${daily_diff_flags} -I '^#' $bak/master.passwd.bak /etc/master.passwd |\ 44e9104c31SKyle Evans sed 's/^\([-+ ][^:]*\):[^:]*:/\1:(password):/' 4581ea85a8SBrad Davis mv $bak/master.passwd.bak $bak/master.passwd.bak2 4681ea85a8SBrad Davis cp -p /etc/master.passwd $bak/master.passwd.bak || rc=3 4781ea85a8SBrad Davis fi 4881ea85a8SBrad Davis 4981ea85a8SBrad Davis if [ ! -f $bak/group.bak ] 5081ea85a8SBrad Davis then 5181ea85a8SBrad Davis [ $rc -lt 1 ] && rc=1 5281ea85a8SBrad Davis echo "no $bak/group.bak" 5381ea85a8SBrad Davis cp -p /etc/group $bak/group.bak || rc=3 5481ea85a8SBrad Davis fi 5581ea85a8SBrad Davis 5681ea85a8SBrad Davis if ! cmp -s $bak/group.bak /etc/group 5781ea85a8SBrad Davis then 5881ea85a8SBrad Davis [ $rc -lt 1 ] && rc=1 5981ea85a8SBrad Davis echo "$host group diffs:" 60*e2f6bafcSMichael Osipov diff ${daily_diff_flags} $bak/group.bak /etc/group 6181ea85a8SBrad Davis mv $bak/group.bak $bak/group.bak2 6281ea85a8SBrad Davis cp -p /etc/group $bak/group.bak || rc=3 6381ea85a8SBrad Davis fi 6481ea85a8SBrad Davis 6581ea85a8SBrad Davis if [ -f /etc/group ] 6681ea85a8SBrad Davis then 6781ea85a8SBrad Davis echo "" 6881ea85a8SBrad Davis echo "Verifying group file syntax:" 6981ea85a8SBrad Davis chkgrp /etc/group || rc=3 7081ea85a8SBrad Davis fi 7181ea85a8SBrad Davis fi;; 7281ea85a8SBrad Davis 7381ea85a8SBrad Davis *) rc=0;; 7481ea85a8SBrad Davisesac 7581ea85a8SBrad Davis 7681ea85a8SBrad Davisexit $rc 77