#!/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"