CD boutable avec shell

Le
François Boisson
Si ça peut être utile, j'ai du faire un CD (en fait modifier un CD existant)
pour pouvoir bouter une machine ayant son clavier et son écran mort mais
fonctionnant. Le CD, sans intervention clavier, installe un RAM disque, boute
sur ce RAM disque (noyau 2.6.17), essaye de configurer l'interface eth0 avec
DHCP et si il ne le trouve pas, le configure comme 192.168.1.254. Puis il
lance un démon telnetd minimal de ma conception (34K en statique, c'est plutôt
petit :) ) auquel on peut accéder via telnet:
On tape des commandes qui sont transmises à un shell bash et on reçoit les
messages de sortie et d'erreurs. Ça m'a permis de
travailler sur cette machine. Si ça peut servir
http://franboisson.free.fr/Isos/BootCD-2.6-shell.iso

François Boisson

PS: Ne pas taper letsgo, c'est un script de duplication de machine que je n'ai
pas effacer, ça formatte /dev/sda


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
François Boisson
Le #9553351
Le Thu, 24 May 2007 19:00:14 +0200
François Boisson
telnetd minimal de ma conception



comprendre par là qu'il est primaire, il récupère la chaine tapée, l'envoi à
bash et répercute la sortie... On doit pouvoir largement améliorer les choses

F.B


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Yves Rutschle
Le #9553311
On Thu, May 24, 2007 at 07:52:24PM +0200, François Boisson wrote:
> telnetd minimal de ma conception
comprendre par là qu'il est primaire, il récupère la chaine tapée, l'envoi à
bash et répercute la sortie... On doit pouvoir largement améliorer les choses



Tu mets un shell bash complet mais pas un telnetd complet?
C'est un choix curieux :)

Intuitivement, je te conseillerais de remplacer bash et ton
telnetd par busybox: tu as alors aussi ftpd, vi, et un tas
d'autres trucs.

Bon, tu n'as peut-être pas non plus envie d'y passer ta
vie...

Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9553221
Le Thu, 24 May 2007 20:08:31 +0200
Yves Rutschle
On Thu, May 24, 2007 at 07:52:24PM +0200, François Boisson wrote:
> > telnetd minimal de ma conception
> comprendre par là qu'il est primaire, il récupère la chaine tapée, l'envoi
> à bash et répercute la sortie... On doit pouvoir largement améliorer les
> choses

Tu mets un shell bash complet mais pas un telnetd complet?
C'est un choix curieux :)



En fait, le systeme fait 70M au total avec bash, quelques utilitaires et
busybox pour l'init et le reste. J'ai mis bash car comme c'est mon couteau
suisse et que je ne travaille avec qu'en console, je trouvais le confort de
bash agréable. Je suis parti de ce truc que j'avais fait il y a qques mois.


Intuitivement, je te conseillerais de remplacer bash et ton
telnetd par busybox: tu as alors aussi ftpd, vi, et un tas
d'autres trucs.



Ben oui sauf que le telnetd de busybox suppose /bin/login et donc tout un
paquet de trucs qu'il n'y a pas. Étant pressé, j'ai donc vite fait sur le gaz
fait un smalltelnetd sans identification avec une première boucle qui était
(connexion étant la douille (socket))

[...]
close(STDOUT_FILENO);
dup(connexion);
close(STDERR_FILENO);
dup(connexion);
close(STDIN_FILENO);
dup(connexion);
system("/bin/sh");
[..]

dans le traitement de la connexion. Malheureusement, la dérivation de stdin ne
marche pas. Je capture donc la commande tapé et je l'envoie à system en ayant
fait aupravant

[..]
close(STDOUT_FILENO);
dup(connexion);
close(STDERR_FILENO);
dup(connexion);
[..]

qui fonctionne bien. L'erreur doit être grossière (j'ai essayé avec dup2 sans
plus de succès). Le pbm est que les commandes doivent être impérativement sur
une ligne...


Bon, tu n'as peut-être pas non plus envie d'y passer ta
vie...



Pour le coup, si tu vois l'erreur, je suis preneur mais bon, maintenant le pbm
est réglé...

François Boisson


Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Yves Rutschle
Le #9553111
On Thu, May 24, 2007 at 10:52:46PM +0200, François Boisson wrote:
Ben oui sauf que le telnetd de busybox suppose /bin/login et donc tout un
paquet de trucs qu'il n'y a pas.



Avec le copain de busybox 'tinylogin' tu dois pouvoir finir
ton système...

Étant pressé, j'ai donc vite fait sur le gaz
fait un smalltelnetd sans identification avec une première boucle qui était
(connexion étant la douille (socket))

[...]
close(STDOUT_FILENO);
dup(connexion);
close(STDERR_FILENO);
dup(connexion);
close(STDIN_FILENO);
dup(connexion);
system("/bin/sh");
[..]



Ça a l'air de marcher correctement ici (sauf que sh me dit
'command not found' pour absolument tout: doit y avoir un
problème de PATH ou de LD_LIBRARY_PATH ou autre, mais il se
fait trop tard pour chercher.

Pour le coup, si tu vois l'erreur, je suis preneur mais bon, maintenant le pbm
est réglé...



Tu veux bien poster le code complet? (en privé ou sur site
Web si c'est trop long)

Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9553051
> Avec le copain de busybox 'tinylogin' tu dois pouvoir finir
ton système...



Arg, je n'y avais pas pensé à celui là, je vais voir



Ça a l'air de marcher correctement ici (sauf que sh me dit
'command not found' pour absolument tout: doit y avoir un
problème de PATH ou de LD_LIBRARY_PATH ou autre, mais il se
fait trop tard pour chercher.



Le pbm est exactement ça, ça n'est pas un pbm de PATH car un system(autre
chose) fonctionne.
En fait, le pbm vient de la redirection de stdin.
* Si j'envois la commande /bin/sh sans faire la redirection de stdin, les
commandes tapées en local s'exécutent bien.
* Si je fais la redirection, ça s'exécute mal pour les commandes envoyées
* Si je fais la redirection et que j'envois la commande "cat > /tmp/gre", le
fichier /tmp/gre obtenu est correct... Va comprendre...

Tu veux bien poster le code complet? (en privé ou sur site
Web si c'est trop long)



Tu as http://boisson.homeip.net/smalltelnet.c
et
http://boisson.homeip.net/smalltelnet-v0.c

Le second est la version actuelle sans la redirection de stdin.

Merci de ton intérêt :)

François Boisson


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Yves Rutschle
Le #9553031
On Fri, May 25, 2007 at 08:10:16AM +0200, François Boisson wrote:
Le pbm est exactement ça, ça n'est pas un pbm de PATH car un system(autre
chose) fonctionne.
En fait, le pbm vient de la redirection de stdin.
* Si j'envois la commande /bin/sh sans faire la redirection de stdin, les
commandes tapées en local s'exécutent bien.
* Si je fais la redirection, ça s'exécute mal pour les commandes envoyées
* Si je fais la redirection et que j'envois la commande "cat > /tmp/gre", le
fichier /tmp/gre obtenu est correct... Va comprendre...



Ça devient intéressant. (c'est nul, les programmes qui
marchent bien.)

Tu as http://boisson.homeip.net/smalltelnet.c
et
http://boisson.homeip.net/smalltelnet-v0.c



404 pour les 2.

Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme