aboutsummaryrefslogtreecommitdiff
path: root/etc/periodic/daily/200.backup-passwd
blob: 43b12a88582e3a49ce2478d8b1df966c19d6be5d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh
#
# $FreeBSD$
#
bak=/var/backups

if [ -f /etc/master.passwd -o -f /etc/group ] ; then
    echo ""
    echo "Backup passwd and group files:"

    if [ ! -f $bak/master.passwd.bak ] ; then
	echo "no $bak/master.passwd.bak"
	cp -p /etc/master.passwd $bak/master.passwd.bak
    fi

    if cmp -s $bak/master.passwd.bak /etc/master.passwd; then :; else
	echo "$host passwd diffs:"
	diff $bak/master.passwd.bak /etc/master.passwd |\
		sed 's/^\([<>] [^:]*\):[^:]*:/\1:(password):/'
	mv $bak/master.passwd.bak $bak/master.passwd.bak2
	cp -p /etc/master.passwd $bak/master.passwd.bak
    fi

    if [ ! -f $bak/group.bak ] ; then
	echo "no $bak/group.bak"
	cp -p /etc/group $bak/group.bak
    fi

    if cmp -s $bak/group.bak /etc/group; then :; else
	echo "$host group diffs:"
	diff $bak/group.bak /etc/group
	mv $bak/group.bak $bak/group.bak2
	cp -p /etc/group $bak/group.bak
    fi

    if [ -f /etc/group ] ; then
        echo ""
	echo "Verifying group file syntax:"
        chkgrp /etc/group
    fi
fi