1/* vi: set sw=4 ts=4: */ 2/* 3 * Mini chroot implementation for busybox 4 * 5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> 6 * 7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 8 */ 9 10/* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ 11 12#include "libbb.h" 13 14int chroot_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 15int chroot_main(int argc UNUSED_PARAM, char **argv) 16{ 17 ++argv; 18 if (!*argv) 19 bb_show_usage(); 20 xchroot(*argv); 21 xchdir("/"); 22 23 ++argv; 24 if (!*argv) { /* no 2nd param (PROG), use shell */ 25 argv -= 2; 26 argv[0] = getenv("SHELL"); 27 if (!argv[0]) { 28 argv[0] = (char *) DEFAULT_SHELL; 29 } 30 argv[1] = (char *) "-i"; 31 } 32 33 BB_EXECVP_or_die(argv); 34} 35