#!/bin/sh set -e cd $(dirname $0) # Rational: # Test that useradd can add an user and userdel removes it. save() { [ ! -d tmp ] && mkdir tmp for i in passwd group shadow gshadow do [ -f /etc/$i ] && cp /etc/$i tmp/$i done true } restore() { rm -f tmp/err tmp/out for i in passwd group shadow gshadow do [ -f tmp/$i ] && cp tmp/$i /etc/$i && rm tmp/$i done rmdir tmp } save # restore the files on exit trap 'restore' 0 for i in passwd group shadow gshadow do cp data/$i /etc done lines_passwd=$(wc -l /etc/passwd | cut -f1 -d" ") lines_shadow=$(wc -l /etc/shadow | cut -f1 -d" ") lines_group=$(wc -l /etc/group | cut -f1 -d" ") lines_gshadow=$(wc -l /etc/gshadow | cut -f1 -d" ") echo -n "Add an user without an entry in shadow " echo "test:x:10002:10002::/tmp:/bin/false" >> /etc/passwd echo "OK" echo "Check that pwck detects it " pwck -r > tmp/out 2> tmp/err || true diff -au data/run2.out tmp/out diff -au data/run2.err tmp/err echo " OK" echo "grpck accepts valid password file " msg=$(grpck -r) test "$msg" = "" echo " OK" #echo -n "Make sure pwck can fix it " #pwcd #echo "OK"