/* See LICENSE file for copyright and license details. */ #include #include #include "util.h" static void usage(void); int main(int argc, char **argv) { char *shell[] = { "/bin/sh", "-i", NULL }, *aux; ARGBEGIN { default: usage(); } ARGEND; if(argc < 1) usage(); if((aux = getenv("SHELL"))) shell[0] = aux; if(chroot(argv[0]) == -1) eprintf("chroot: '%s':", argv[0]); if(chdir("/") == -1) eprintf("chroot:"); if(argc == 1) { execvp(*shell, shell); } else { execvp(argv[1], argv+1); } eprintf("chroot: '%s':", argv[1]); return EXIT_FAILURE; } void usage(void) { eprintf("usage: chroot dir [command [arg...]]\n"); }