63 lines
1.1 KiB
Plaintext
63 lines
1.1 KiB
Plaintext
|
#!/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"
|