#!/bin/bash
#But du script
#Crée un utilisateur pour pouvoire faire du ssh a distance avec les outils strictement indispensable et a choix.
#le nom de l'utilisateur et le mots de passe seron fourni en paramettre.
#compte utilisateur pour un ssh
USER=toto
TAB_APP="/usr/sbin/chroot /bin/bash /bin/cat /bin/chmod /bin/chown /bin/cp /bin/grep /bin/gzip /bin/ls /bin/mkdir /bin/more /bin/mv /bin/rm /bin/tar /bin/nano /bin/ln"
REP=/home/tnt/chroot/$USER/
#======================= Répertoire temporaire Et fichier temporaire=================
TMP="/tmp/chrootssh0"
TMP1="/tmp/chrootssh1.txt"
if [ -z $USER ] ;then
echo "Erreur pas d'utilisateur fourni"
exit 0
fi
if [ -e $REP ] ;then
echo "Effacement de $REP"
rm -r $REP
mkdir -p $REP
else
mkdir -p $REP
fi
if [ -a $TMP ] ;then
echo "Effacement de $TMP"
rm $TMP
fi
if [ -a $TMP1 ] ;then
echo "Effacement de $TMP1"
rm $TMP1
fi
for O in $TAB_APP; do
ldd $O | awk '{ print $1 }' > $TMP
while read line ;do
echo "DEBUG première entrée: $line pour $O"
CarId=`echo $line | awk {'print $1'} | cut -c0-1`
if [ "$CarId" = "/" ] ;then
echo "Ok $line"
elif [ "$CarId" = "l" ] ;then
FD=`find / -iname $line 2>/dev/null | grep "^/lib/"`
ST=`grep -v $FD $TMP1`
if [ -a "$FD" ] && [ ! -z "$FD" ] && [ -z "$ST" ] ;then
echo $FD >> $TMP1
echo "DB fichier ajouter $FD"
else
echo "librairie non trouver $line pour le programe $O"
fi
else
echo "problème caratère non identifier$CarId"
fi
FD2=`grep -v $FD $TMP1`
if [ ! -e "$line" ] &&[ ! -z $FD2 ] ;then
echo "DB2 fichier ajouter $REP$line"
echo "$line" >> $TMP1
else
echo "entrée refusée $line"
fi
echo "Suivant pour $O numero de la boucle : $count"
count=`expr $count + 1`
sleep 20
#problème il ne continue plus la bouble alors qu'il y a plus d'une entrée
done < $TMP
count=0
done
echo "opération terminée"