Vilain script qui m'a tué mon système :\

bonjour,

J’ai suivi ce satané tutorial (la balise url marche pas avec le lien, le tuto se trouve en cache google ici : 209.85.129.104/search?q=cache:zw … ole,_etc….html+chrooter+utilisateur&hl=fr&ct=clnk&cd=1&gl=fr ) pour apprendre à chrooter, et à la fin on nous propose un script permettant d’automatiser tout ça… Ni une ni deux, je me log en root, je paste le script dans un fichier, je lui colle les bons droits et j’execute via la commande : ./monscript.sh (sans paramètre…).

Bon, ok, j’ai executé un truc en root, c’était ma première erreur, mais dans la mesure où ça venait de léalinux, je faisais à peu près confiance, le hic, c’est que d’une le script n’a pas marché, mais le pire, c’est qu’il a fichu mon système completement en vrac…

Voilà le script :

[code]#!/bin/bash

if [ “$#” != 1 ];
then
echo "Usage : $0 "
exit 255;
fi

LOGIN=$1
GROUP=chroot

echo "-- Création du groupe “${GROUP}”"
groupadd “${GROUP}” > /dev/null 2>&1

echo "-- Création de l’utilisateur “${LOGIN}”"
useradd
-c “User chrooted”
-d “/home/${LOGIN}/”
-g “${GROUP}”
-s “/bin/chrootuser”
“${LOGIN}”

echo "-- Son mot de passe : "
passwd “${LOGIN}” > /dev/null

echo "-- Création de l’arborescence de son homedir"
mkdir /home/${LOGIN}/
/home/${LOGIN}/bin/
/home/${LOGIN}/lib/
/home/${LOGIN}/dev/
chmod 700
/home/${LOGIN}/
/home/${LOGIN}/bin/
/home/${LOGIN}/lib/
/home/${LOGIN}/dev/

cp /bin/bash /home/${LOGIN}/bin/bash
ldd /bin/bash | awk -v “LOGIN=$LOGIN” ‘{ print “cp “$3” /home/“LOGIN”/lib/” }’ | bash
mknod /home/${LOGIN}/dev/null c 1 3 -m 666
chown -R “${LOGIN}:${GROUP}” /home/${LOGIN}

echo “>> Utilisateur “${LOGIN}” chrooté”

echo "-- Création du programme /bin/chrootuser"
cat < /bin/chrootuser
#!/bin/bash
exec -c /usr/sbin/chroot /home/$USER /bin/bash
EOF
chmod 555 /bin/chrootuser [/code]

Pour bien voire ce qui s’est passé, voici quelques détails :

  • J’étais dans /home/julian quand je l’ai executé
  • J’étais en root…

Les problèmes :

  • Plus moyen de me connecter sous X, on me dit que mon repertoire /home/julian n’existe pas.
  • Même quand je supprime l’utilisateur Julian et que je le recré, il semble toujours appartenir à Julian:chroot.
  • Même en créant un compte “test”, je n’arrive pas non plus à me loguer sous X.

Voilou… en esperant que vous pourrez m’aider à me sortir de là.

Bouhhhouu qu’il est vilain ce script, pas une ligne de commentaire …

sans parmamètre tu es sur ?

[quote=“coldroom”]Bon, ok, j’ai executé un truc en root, c’était ma première erreur …
Voilà le script :

#!/bin/bash if [ "$#" != 1 ]; then echo "Usage : $0 <login>" exit 255; fi
[/quote]Ben normalement si tu passes pas de paramètre comme attendu, le login, le script cesse de s’exécuter alors … qu’as tu fais exactement ?

Sinon, la dernière phrase du tuto, tu en penses quoi ? : [quote]
Important: Pensez à rajouter /bin/chrootuser dans /etc/shells.
Sinon vous ne pourrez pas vous logguer[/quote]

[quote=“usinagaz”]Bouhhhouu qu’il est vilain ce script, pas une ligne de commentaire …

sans parmamètre tu es sur ?

[quote=“cdrom”]Bon, ok, j’ai executé un truc en root, c’était ma première erreur …
Voilà le script :

#!/bin/bash if [ "$#" != 1 ]; then echo "Usage : $0 <login>" exit 255; fi
[/quote]Ben normalement si tu passes pas de paramètre comme attendu, le login, le script cesse de s’exécuter alors … qu’as tu fais exactement ?[/quote]Le script ne s’est pas éxecuté jusqu’à la fin, mais j’ai bien peur qu’il ait pris en compte mon utilisateur (à savoir root) en guise de paramètre ou quelquechose dans le genre.

[quote=“cdrom”]Sinon, la dernière phrase du tuto, tu en penses quoi ? : [quote]
Important: Pensez à rajouter /bin/chrootuser dans /etc/shells.
Sinon vous ne pourrez pas vous logguer[/quote][/quote]
J’en dis que je pensais que c’était inclu dans le script… quite à tout automatiser, pourquoi ne laisser que cette partie aux soins de l’utilisateur.

Et quand bien même, si on ne passe pas de paramètre, le script devrait tout de suite s’arrêter et ne rien avoir le temps de faire…

Que me conseillez-vous de faire ?

ben je sais pas… ca par exemple:

[quote]Important: Pensez à rajouter /bin/chrootuser dans /etc/shells.
Sinon vous ne pourrez pas vous logguer[/quote]

Voici l’original non mi en cache par google:

lea-linux.org/cached/index/Admin … root.html#

Normalement, il n’aurait pas du dépasser la fin du début, sans paramètre, si tu as bien fait un ./monscript.sh et ‘entrer’, le script n’a pas pu modifier quoique ce soit sur ton system, ça viendrait donc d’autre chose.

Il n’y a pas de /bin/chrootuser.

Si j’ai bien vu que le script éxécutait un bout de code, mais je me demande si sans paramètre il prend pas par defaut l’utilisateur en cours… ce qui expliquerait mes problèmes.

Sinon j’ai fait un chmod 777 -R /home , seul moyen pour pouvoir me loguer…

Donc j’ai pu ouvrir ma session sous X avec un message me disant que faute de droit correcte elle serait pas enregistrée.

Ce que j’aimerais savoir maintenant, c’est comment rétablir correctement les droits initiaux un par un.