[SHELL] Chroot automatique
Salut j'ai vu sur un site francais ce script shell qui cree de maniere automatique un environnement chroot(jail) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#!/bin/bash
# On vérifie que le nom de l'utilisateur souhaité est bien passé en paramêtre
if [ "$#" != 1 ];
then
echo "Usage : $0 <login>"
exit 255;
fi
# Nom d'utilisateur
LOGIN=$1
# Groupe attribué à l'utilisateur
GROUP=chroot
# Répertoire par défaut des shell chrootés
REP=/home/chroot
# Utilitaires présents dans /bin
OUTILB="bash cat chmod chown cp grep gunzip gzip ls mkdir more mv rm tar"
echo "-- Création du groupe \"${GROUP}\""
groupadd "${GROUP}" > /dev/null 2>&1
echo "-- Création de l'utilisateur \"${LOGIN}\""
useradd \
-c "Utilisateur en espace restreint" \
-d "/home/${LOGIN}/" \
-g "${GROUP}" \
-s "/bin/chroot" \
"${LOGIN}"
echo "-- Son mot de passe : "
passwd "${LOGIN}" > /dev/null
echo "-- Création de l'arborescence de son Répertoire personnel --"
mkdir -p $REP/${LOGIN}/bin/ $REP/${LOGIN}/lib/ $REP/${LOGIN}/dev/
# Mise en place des droits sur les répertoires
cd $REP
chmod -R 700 ${LOGIN}
# Copie des programmes et de leurs librairies
for I in $OUTILB;
do
cp /bin/$I $REP/${LOGIN}/bin/
# Pour chaque programme, on recherche les librairies correspondantes.
# On termine en demandant l'exécution par bash des lignes renvoyées par awk
ldd /bin/$I | awk -v "LOGIN=$LOGIN" '{ print "cp "$3 $REP"/"LOGIN"/lib/" }' | bash
done
# Création de l'espace /dev
mknod $REP/${LOGIN}/dev/null c 1 3 -m 666
chown -R "${LOGIN}:${GROUP}" $REP/${LOGIN}
# Fin de la création du compte utilisateur.
echo ">> Utilisateur \"${LOGIN}\" créée et emprisonné"
if [ ! -e /bin/chroot ]; then
echo "-- Création du programme /bin/chroot"
cat < /bin/chroot
#!/bin/bash
exec -c /usr/sbin/chroot /home/chroot/\$USER /bin/bash
EOF
chmod 555 /bin/chroot
fi |
Malheureusement lors de l'execution j'ai toujours de messages d'erreurs. Etant donne que je m'y connais pas trop en shell! Quelqu'un aurais til une idee ou la faute reside??
Le Message d'erreur
Citation:
/usr/sbin/chroot: cannot change root directory to /home/chroot/$USER: No such file or directory
je suis sur Ubuntu 10.10!!
Merci