summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/Makefile3
-rw-r--r--usr.sbin/jail/Makefile4
-rw-r--r--usr.sbin/jail/jail.832
-rw-r--r--usr.sbin/jail/jail.c32
4 files changed, 70 insertions, 1 deletions
diff --git a/usr.sbin/Makefile b/usr.sbin/Makefile
index 4cd11ba..576a238 100644
--- a/usr.sbin/Makefile
+++ b/usr.sbin/Makefile
@@ -1,5 +1,5 @@
# From: @(#)Makefile 5.20 (Berkeley) 6/12/93
-# $Id: Makefile,v 1.151 1999/04/07 04:12:02 msmith Exp $
+# $Id: Makefile,v 1.152 1999/04/28 08:00:50 obrien Exp $
# XXX MISSING: mkproto
SUBDIR= IPXrouted \
@@ -31,6 +31,7 @@ SUBDIR= IPXrouted \
ipresend \
ipsend \
iptest \
+ jail \
kbdcontrol \
kbdmap \
kernbb \
diff --git a/usr.sbin/jail/Makefile b/usr.sbin/jail/Makefile
new file mode 100644
index 0000000..f90553d
--- /dev/null
+++ b/usr.sbin/jail/Makefile
@@ -0,0 +1,4 @@
+PROG= jail
+MAN8= jail.8
+
+.include <bsd.prog.mk>
diff --git a/usr.sbin/jail/jail.8 b/usr.sbin/jail/jail.8
new file mode 100644
index 0000000..e1108fa
--- /dev/null
+++ b/usr.sbin/jail/jail.8
@@ -0,0 +1,32 @@
+.Dd April 28, 1999
+.Dt JAIL 8
+.Os FreeBSD 4.0
+.Sh NAME
+.Nm jail
+.Nd imprison process and decendants.
+.Sh SYNOPSIS
+.Nm jail
+.Ar path
+.Ar hostname
+.Ar ip-number
+.Sh DESCRIPTION
+The
+.Nm
+command imprisons a process and all future decendants.
+.Pp
+Please see the
+.Xr jail 2
+Manual page for further details.
+.Sh SEE ALSO
+.Xr chroot 2 ,
+.Xr jail 2
+.Sh HISTORY
+The
+.Fn jail
+function call appeared in
+.Fx 4.0 .
+.Pp
+The jail feature was written by Poul-Henning Kamp for
+R&D Associates
+.Dq Li http://www.rndassociates.com/
+who contributed it to FreeBSD.
diff --git a/usr.sbin/jail/jail.c b/usr.sbin/jail/jail.c
new file mode 100644
index 0000000..938c50b
--- /dev/null
+++ b/usr.sbin/jail/jail.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <err.h>
+#include <sys/types.h>
+#include <sys/jail.h>
+#include <netinet/in.h>
+
+int
+main(int argc, char **argv)
+{
+ struct jail j;
+ int i;
+ struct in_addr in;
+
+ if (argc < 5)
+ errx(1, "Usage: %s path hostname ip command ...\n", argv[0]);
+ i = chdir(argv[1]);
+ if (i)
+ err(1, "chdir %s", argv[1]);
+ j.path = argv[1];
+ j.hostname = argv[2];
+ i = inet_aton(argv[3], &in);
+ if (!i)
+ errx(1, "Couldn't make sense if ip number\n");
+ j.ip_number = in.s_addr;
+ i = jail(&j);
+ if (i)
+ err(1, "Imprisonment failed");
+ i = execv(argv[4], argv + 4);
+ if (i)
+ err(1, "execv(%s)", argv[4]);
+ exit (0);
+}
OpenPOWER on IntegriCloud