Bonjour à tous !
Je suis débutant et j'ai un souci avec avec la condition dans mon script en batch.
J'aimerai mettre au point pour mes cours un script qui contrôle les fichiers qui ont le droit Suid sur na machine.
Voici ce que j'aimerai mettre en place :
Lors du premier lancement du script, un fichier est créé contenant tous les fichiers qui ont le droit Suid.Ensuite, lors des prochains lancements du scripts, il va détecter que mon fichier existe et en créera un autre temporaire dans lequel il mettra la nouvelle liste des fichiers en Suid. Enfin il fera un diff des 2 fichiers pour les comparer.
Le problème , c'est que ma condition ne marche pas...
Voici mon code :
#!/bin/bash
original=/root/Bureau/scripts/Setuid.txt
temporaire=/root/Bureau/scripts/Setuidtemp.txt
base=/
if [ -e $orignal]
then
touch $temporaire
recherche=`find $base -type f -perm -u=s -print`
for fichiers in $recherche
do
detail=`ls -l $fichiers`
echo $detail >> $temporaire
done
diff -a $orignal $temporaire
rm $temporaire
else
touch $orignal
recherche=`find $base -type f -perm -u=s -print`
for fichiers in $recherche
do
detail=`ls -l $fichiers`
echo $detail >> $orignal
done
fi
exit
En gros au début je teste si mon fichier existe. Si il existe je crée un fichier temporaire et je fais le diff des 2.
Si il n'existe pas je le crée (le ELSE).
Le problème c'est qu'il ne passe pas au ELSE alors que le fichier n'existe pas... il crée le fichier temporaire et forcément le diff affiche une erreur. La condition ne marche pas... Au secours !!! Je suis pomé là...
Bonne journée et merci d'avance !