Thread View: pl.comp.os.linux.programowanie
4 messages
4 total messages
Started by Filip Ozimek
Thu, 23 Sep 1999 15:09
chroot
Author: Filip Ozimek
Date: Thu, 23 Sep 1999 15:09
Date: Thu, 23 Sep 1999 15:09
12 lines
1215 bytes
1215 bytes
Witam, Próbuję najpierw zrobić chroot(2) a potem odpalić jakiś program przez system(3) (program jest statycznie zlinkowany, proces to wykonujący dziala na prawach roota) ale jakoś nie dziala. :( Móglby ktoś podać jakiś dzialający przykladzik? -------------------------------------------------------------------------- Filip Ozimek, 2:480/33.56 Mamo, czy mogę zostać rycerzem Jedi?
Re: chroot
Author: Cezary H. Noweta
Date: Thu, 23 Sep 1999 15:44
Date: Thu, 23 Sep 1999 15:44
25 lines
1983 bytes
1983 bytes
Witam, Filip Ozimek wrote: > Próbuję najpierw zrobić chroot(2) a potem odpalić jakiś program > przez system(3) (program jest statycznie zlinkowany, proces to wykonujący > dziala na prawach roota) ale jakoś nie dziala. :( Móglby ktoś podać jakiś > dzialający przykladzik? Jesli system(...) zwraca 127 (0x7F), to jest spowodowane niemoznoscia odpalenia /bin/sh: system(...) odpala "/bin/sh -c 'twoja_komenda'", wiec statycznie musi byc zlinkowany (skompilowany) /bin/sh i 'twoja_komenda'. Z tym pierwszym moze byc problem ;). Musisz skopiowac do 'twojego_roota' /bin/sh i pliki uzywane przez /bin/sh (nie tylko biblioteki) - nie wiem ktore :(. Podejrzewam, ze do 'twojego_roota' bedzie trzeba skopiowac kupe plikow. Lepszym rozwiazaniem jest execve(...) (lub fork() i execve(...)). Poza tym system(...) blokuje sygnaly. -- pozdrawiam -- Cezary H. Noweta 90-237 LODZ, ul. J.Matejki 34/38 POLAND (chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl) +48 42 6356013, 6356012 University of Lodz - Main Library fax 6781678
Re: chroot
Author: Jan Namedyñski
Date: Thu, 23 Sep 1999 23:37
Date: Thu, 23 Sep 1999 23:37
21 lines
1680 bytes
1680 bytes
Filip Ozimek wrote: > > Witam, > > Próbujê najpierw zrobiæ chroot(2) a potem odpaliæ jaki¶ program > przez system(3) (program jest statycznie zlinkowany, proces to wykonuj±cy > dziala na prawach roota) ale jako¶ nie dziala. :( Móglby kto¶ podaæ jaki¶ > dzialaj±cy przykladzik? > Prawdopodobnie chodzi o to ze sh (bash ?) nie jest statycznie zlinkowany... w chrootowanym systemie musisz utworzyc mala strukture katalogow przydalo by sie /etc/(konfiguracja ld) /bin/(bash) /lib/(biblioteki dynamiczne) /dev/(konsole). najlepiej bedzie jak sprawdzisz jakich bibliotek uzywa bash i ten twoj programik a pozniej to przeniesiesz. -- ...:in.God.we.trust:..:Jan:..:[JaNkus]:..:Namedyñski:..:jankus@cavern.pl:...
Re: chroot
Author: Cezary H. Noweta
Date: Fri, 24 Sep 1999 14:08
Date: Fri, 24 Sep 1999 14:08
76 lines
2400 bytes
2400 bytes
Witam,
Filip Ozimek wrote:
> [...] Móglby ktoś podać jakiś
> dzialający przykladzik?
------
example.c
------
#define _GNU_SOURCE
/* powyzsze dla environ */
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
int my_system(const char *cmd)
{
const char *my_args[] = { cmd, NULL };
pid_t pid = fork();
int res, stat;
/* child - uruchamiamy komende */
if ( !pid ) {
execve(cmd, (char * const *)my_args, environ);
return(1000000 + errno);
}
/* fork sie wywalil */
else if ( pid < 0 )
return(2000000 + errno);
/* parent - czekamy na childa */
while ( !(res = waitpid(pid, &stat, WNOHANG)) ) {
/* tutaj robimy rozne rzeczy,
gdy nudzi nam sie w oczekiwaniu
na childa */
}
/* waitpid sie powiodl sie */
if ( res > 0 )
return(-stat);
/* waitpid sie wywalil - nie powinno do tego dojsc ale... ;) */
return(3000000 + errno);
}
main()
{
if ( chroot(".") < 0 )
fprintf(stderr, "ERROR while chroot()ing\n");
fprintf(stderr, "my_system() returned: %d\n", my_system("/hello"));
}
------
Po pomyslnym wykonaniu powinienes dostac:
Hello, world!
my_system() returned: -######
w przypadku bledu:
my_system() returned(): #######
my_system() returned(): -######
Zrodla programu /hello chyba nie musze podawac ;-)
-- pozdrawiam
--
Cezary H. Noweta 90-237 LODZ, ul. J.Matejki 34/38 POLAND
(chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl) +48 42 6356013, 6356012
University of Lodz - Main Library fax 6781678
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads