Hello all,
what i am try to do is to get my program to enter chroot environment and do some commands and then exit.
For Example
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define ChRoot "sudo chroot \"/\" /usr/bin/env -i HOME=/root TERM=\"$TERM\" PATH=/bin:/usr/bin:/sbin:/usr/sbin:/bin /bin/bash --login +h"
void func1(){
//enter the chroot environment
char line[130]; FILE *fp;
fp = popen(ChRoot, "r");
while(fgets( line, sizeof line, fp)){
printf ("%s\n",line);
}
pclose(fp);
}
void func2(){
//run a command in the chroot environment
char line[130]; FILE *fp;
fp = popen("ls", "r");
while(fgets( line, sizeof line, fp)){
printf ("%s\n",line);
}
pclose(fp);
}
int main() {
func1();
func2();
return 0;
}
the problem with this code is, it will get me in the chroot environment however it will not fire func2 until i exit form the chroot environment. What i need is to get my code to do func1 and then func2 in chroot environment and then exit.I know what i am doing in my code is horribly wrong, however, i hope i could get some directions .
Any help would be much appreciated.