Re: CD boutable avec shell

2007-05-25 Par sujet François Boisson
 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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-25 Par sujet Yves Rutschle
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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-25 Par sujet user
Arch, au temps pour moi, c'est http://boisson.homeip.net/smalltelnetd-v1.c
et http://boisson.homeip.net/smalltelnetd.c

J'ai fait ça trop vite...

PS: dsl pour le doublon mais je suis en remote console direct avec mail...


-- 
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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-25 Par sujet Sylvain Sauvage
[EMAIL PROTECTED], vendredi 25 mai 2007, 13:18:16 CEST
 
 Arch, au temps pour moi, c'est http://boisson.homeip.net/smalltelnetd-v1.c
 et http://boisson.homeip.net/smalltelnetd.c
 
 J'ai fait ça trop vite...
 
 PS: dsl pour le doublon mais je suis en remote console direct avec mail...

  J’ai fait un petit test avec dup2. En simplifié :

fd = accept(prise, (struct sockaddr*)adr_connexion, taille);
dup2(fd, 0);
dup2(fd, 1);
dup2(fd, 2);
fcntl(fd, F_SETFD, FD_CLOEXEC);
execl(/bin/sh, sh, -i, NULL);

et ça fonctionne...
(Le fcntl permet de fermer le fd lorsque execl termine. Il faut
 quand même le fermer chez le père (il a été copié pour le fils).)

  Le tout dispo par là : http://slswww.free.fr/miniteld.c

-- 
 Sylvain Sauvage



Re: CD boutable avec shell

2007-05-25 Par sujet François Boisson

   execl(/bin/sh, sh, -i, NULL);
 
 et ça fonctionne...
 (Le fcntl permet de fermer le fd lorsque execl termine. Il faut
  quand même le fermer chez le père (il a été copié pour le fils).)

Indépendamment de ça, c'est l'option -i qui fait fonctionner le shell. Bizarre
que cette option soit indispensable ici mais bon.

Merci du coup de main...

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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-25 Par sujet Sylvain Sauvage
François Boisson, vendredi 25 mai 2007, 15:51:10 CEST
 
 
  execl(/bin/sh, sh, -i, NULL);
  
  et ça fonctionne...
  (Le fcntl permet de fermer le fd lorsque execl termine. Il faut
   quand même le fermer chez le père (il a été copié pour le fils).)
 
 Indépendamment de ça, c'est l'option -i qui fait fonctionner le shell. Bizarre
 que cette option soit indispensable ici mais bon.

  Non non. L’option -i permet surtout l’affichage du prompt.
  Sans -i, ça fonctionne aussi (en tout cas chez moi).

 Merci du coup de main...

  Pas de quoi.

-- 
 Sylvain Sauvage



Re: CD boutable avec shell

2007-05-25 Par sujet François Boisson
Le Fri, 25 May 2007 17:14:12 +0200
Sylvain Sauvage [EMAIL PROTECTED] a écrit:

  Indépendamment de ça, c'est l'option -i qui fait fonctionner le shell.
  Bizarre que cette option soit indispensable ici mais bon.
 
   Non non. L’option -i permet surtout l’affichage du prompt.
   Sans -i, ça fonctionne aussi (en tout cas chez moi).
De plus en plus curieux, ton shell est bash ou autre chose???

(chez moi sans le -i ça plante complètement...)


-- 
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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-25 Par sujet Sylvain Sauvage
François Boisson, vendredi 25 mai 2007, 17:42:24 CEST
 
 Le Fri, 25 May 2007 17:14:12 +0200
 Sylvain Sauvage [EMAIL PROTECTED] a écrit:
 
   Indépendamment de ça, c'est l'option -i qui fait fonctionner le shell.
   Bizarre que cette option soit indispensable ici mais bon.
  
Non non. L’option -i permet surtout l’affichage du prompt.
Sans -i, ça fonctionne aussi (en tout cas chez moi).
 De plus en plus curieux, ton shell est bash ou autre chose???

  Oui. /bin/sh - bash. En Sid.
 
 (chez moi sans le -i ça plante complètement...)

  Bizarre.
  À noter : je le lance en user normal (d’où le port 2323).

[re-tests]

  Ah non, ça y est : avec telnet, ça ne marche pas. J’utilisais
nc pour les tests. Effectivement, telnet a besoin de -i. Telnet
doit faire des manips sur le flux.

-- 
 Sylvain Sauvage



Re: CD boutable avec shell

2007-05-25 Par sujet Yves Rutschle
On Fri, May 25, 2007 at 06:05:35PM +0200, Sylvain Sauvage wrote:
   Ah non, ça y est : avec telnet, ça ne marche pas. J???utilisais
 nc pour les tests. Effectivement, telnet a besoin de -i. Telnet
 doit faire des manips sur le flux.

J'avais pensé à des manips bizarres de libreadline, mais
lancer '/usr/bin/gdb' marche parfaitement (avec telnet)

[rejoue]

AH!

Si on lance avec:
system(tee out | /bin/sh);

on se rend compte que telnet converti les 'entrée' en CR/LF
alors que nc n'envoit que CR. Donc sh doit essayer de lancer
'ls0x0d'... qui n'existe pas.

sh -i doit faire 'ce qu'il faut' pour s'adapter aux
différence de 'terminal'.

Ça y est, c'est officiellement le weekend ;)
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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-25 Par sujet Sylvain Sauvage
Yves Rutschle, vendredi 25 mai 2007, 18:24:55 CEST
 
 On Fri, May 25, 2007 at 06:05:35PM +0200, Sylvain Sauvage wrote:
Ah non, ça y est : avec telnet, ça ne marche pas. J???utilisais
  nc pour les tests. Effectivement, telnet a besoin de -i. Telnet
  doit faire des manips sur le flux.
 
 J'avais pensé à des manips bizarres de libreadline, mais
 lancer '/usr/bin/gdb' marche parfaitement (avec telnet)
 
 [rejoue]
 
 AH!
 
 Si on lance avec:
 system(tee out | /bin/sh);
 
 on se rend compte que telnet converti les 'entrée' en CR/LF
 alors que nc n'envoit que CR. Donc sh doit essayer de lancer
 'ls0x0d'... qui n'existe pas.

  On aurait pu s’en rendre compte plus tôt, le message étant :

ls
: command not found

et non :

ls : command not found

  De l’intérêt de bien analyser les messages d’erreur.

 sh -i doit faire 'ce qu'il faut' pour s'adapter aux
 différence de 'terminal'.

  Oui. « Interactif » donc moins sourcilleux.

 Ça y est, c'est officiellement le weekend ;)

  Bon weekend, alors.
-- 
 Sylvain Sauvage



Re: CD boutable avec shell

2007-05-25 Par sujet François Boisson
Le Fri, 25 May 2007 19:13:15 +0200
Sylvain Sauvage [EMAIL PROTECTED] a écrit:

 ls : command not found
 
   De l’intérêt de bien analyser les messages d’erreur.

Ben j'avais bien fait cette analyse (j'avais regardé les paquets par
ethereal) mais j'attribuais le pbm à la redirection de stdin (que je n'avais
jamais utilisé...). A l'usage le CD s'avère plus pratique avec cette version
de telnetd... Dommage que j'en ai plus besoin :)

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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-25 Par sujet François Boisson
Le Fri, 25 May 2007 18:24:55 +0200
Yves Rutschle [EMAIL PROTECTED] a écrit:

 AH!
 
 Si on lance avec:
 system(tee out | /bin/sh);
 
 on se rend compte que telnet converti les 'entrée' en CR/LF
 alors que nc n'envoit que CR. Donc sh doit essayer de lancer
 'ls0x0d'... qui n'existe pas.
 
 sh -i doit faire 'ce qu'il faut' pour s'adapter aux
 différence de 'terminal'.

Exact, je serais moins bête ce soir :)

 
 Ça y est, c'est officiellement le weekend ;)

eh ben bon week end, pour lme moment orage maouss sur Paris :(


-- 
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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



CD boutable avec shell

2007-05-24 Par sujet 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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-24 Par sujet François Boisson
Le Thu, 24 May 2007 19:00:14 +0200
François Boisson [EMAIL PROTECTED] a écrit:

 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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-24 Par sujet 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 :)

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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-24 Par sujet François Boisson
Le Thu, 24 May 2007 20:08:31 +0200
Yves Rutschle [EMAIL PROTECTED] a écrit:

 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 [EMAIL PROTECTED]
 with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
 


-- 
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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: CD boutable avec shell

2007-05-24 Par sujet Yves Rutschle
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 [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]