Tuesday, October 10, 2006

check cvs access v1.1

#!/bin/sh

ls -d /path/to/cvs/*/REPOSITORY/CVSROOT |while read dir
do
echo "### CVS: $dir"
if [ ! -f $dir/passwd ]; then
echo "# Pas de fichier passwd, droits system"
ls -ld /prod /prod/devel
ls -ld $(dirname $(dirname $dir))
ls -ld $(dirname $dir)
ls -ld $dir
echo "### END"
echo
echo
continue
fi
awk -F: '{print $1}' $dir/passwd |grep -v '^$' |sort > /tmp/ro
if [ ! -f $dir/writers ]; then
echo "# Pas de fichier writers, tous les users ont access rw:"
cat /tmp/ro
else
awk -F: '{print $1}' $dir/writers |grep -v '^$' |sort > /tmp/rw
echo "# User rw (fichier writers):"
cat /tmp/rw
echo ""
echo "# Personne ayant les droits de lecture (car compte encore present):"
echo "# Legende: - = read only"
echo "# Legende: + = a nettoyer: pas de compte mais encore present dans readers/writers"
diff -u /tmp/ro /tmp/rw|grep -- '^[+-]\+' | grep -v '^[-+]\{3\} /tmp/r[ow]'
fi
if [ ! -f "$dir/readers" ]; then
echo "# Pas de fichier readers."
else
echo "# Fichier readers:"
cat $dir/readers 2>&1
fi
echo "### END"
echo
echo
done

0 Comments:

Post a Comment

<< Home