aboutsummaryrefslogtreecommitdiff
path: root/chroot.c
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>1999-10-05 16:24:54 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>1999-10-05 16:24:54 +0000
commit1f3e8dc36947bdcc2d008fba3cdc29e2c79f9c27 (patch)
tree15feebbb4be9a9168209609f48f0b100f9364420 /chroot.c
downloadbusybox-w32-1f3e8dc36947bdcc2d008fba3cdc29e2c79f9c27.tar.gz
busybox-w32-1f3e8dc36947bdcc2d008fba3cdc29e2c79f9c27.tar.bz2
busybox-w32-1f3e8dc36947bdcc2d008fba3cdc29e2c79f9c27.zip
Initial revision
git-svn-id: svn://busybox.net/trunk/busybox@5 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'chroot.c')
-rw-r--r--chroot.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/chroot.c b/chroot.c
new file mode 100644
index 000000000..ca0bfcf3f
--- /dev/null
+++ b/chroot.c
@@ -0,0 +1,32 @@
1#include "internal.h"
2#include <stdio.h>
3#include <unistd.h>
4
5
6const char chroot_usage[] = "chroot directory [command]\n"
7 "Run a command with special root directory.\n";
8
9extern int
10chroot_main (struct FileInfo *i, int argc, char **argv)
11{
12 char *prog;
13
14 if (chroot (argv[1]))
15 {
16 name_and_error ("cannot chroot to that directory");
17 return 1;
18 }
19 if (argc > 2)
20 {
21 execvp (argv[2], argv + 2);
22 }
23 else
24 {
25 prog = getenv ("SHELL");
26 if (!prog)
27 prog = "/bin/sh";
28 execlp (prog, prog, NULL);
29 }
30 name_and_error ("cannot exec");
31 return 1;
32}