summaryrefslogtreecommitdiff
path: root/srcx
diff options
context:
space:
mode:
authorStef Walter <stef@memberwebs.com>2004-05-20 00:08:28 +0000
committerStef Walter <stef@memberwebs.com>2004-05-20 00:08:28 +0000
commitc741daf0524869d8bf4ab5b78a8b8a25ba7ceb0a (patch)
treed2f699c57b855a65959ab57c7309fe2eefad5ed4 /srcx
parent61efcd183a9c458df98f02bfe442ea8959f2ed6b (diff)
Added injail to jailutils
Diffstat (limited to 'srcx')
-rw-r--r--srcx/Makefile.am7
-rw-r--r--srcx/injail.876
-rw-r--r--srcx/injail.c72
3 files changed, 151 insertions, 4 deletions
diff --git a/srcx/Makefile.am b/srcx/Makefile.am
index c0930a4..1ddc4f4 100644
--- a/srcx/Makefile.am
+++ b/srcx/Makefile.am
@@ -1,22 +1,21 @@
-sbin_PROGRAMS = jstart jkill jails jid jps
+sbin_PROGRAMS = jstart jkill jails jid jps injail
jstart_SOURCES = jstart.c util.h util.c
jkill_SOURCES = jkill.c util.h util.c
jails_SOURCES = jails.c util.h util.c
jid_SOURCES = jid.c util.h util.c
jps_SOURCES = jps.c util.h util.c
+injail_SOURCES = injail.c util.h util.c
install-exec-hook:
ln -f $(DESTDIR)$(sbindir)/jkill$(EXEEXT) \
$(DESTDIR)$(sbindir)/killjail$(EXEEXT)
# Uninstall hook doesn't work :(
-# uninstall-hook:
uninstall-local:
rm -f $(DESTDIR)$(sbindir)/killjail$(EXEEXT)
-man_MANS = jstart.8 jkill.8 jails.8 jid.8 jps.8
+man_MANS = jstart.8 jkill.8 jails.8 jid.8 jps.8 injail.8
EXTRA_DIST = $(man_MANS)
-
diff --git a/srcx/injail.8 b/srcx/injail.8
new file mode 100644
index 0000000..036ef7b
--- /dev/null
+++ b/srcx/injail.8
@@ -0,0 +1,76 @@
+.\"
+.\" Copyright (c) 2004, Nate Nielsen
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" * Redistributions of source code must retain the above
+.\" copyright notice, this list of conditions and the
+.\" following disclaimer.
+.\" * Redistributions in binary form must reproduce the
+.\" above copyright notice, this list of conditions and
+.\" the following disclaimer in the documentation and/or
+.\" other materials provided with the distribution.
+.\" * The names of contributors to this software may not be
+.\" used to endorse or promote products derived from this
+.\" software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+.\" COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+.\" OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+.\" THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+.\" DAMAGE.
+.\"
+.\"
+.\" CONTRIBUTORS
+.\" James E. Quick <jq@quick.com>
+.\" Nate Nielsen <nielsen@memberwebs.com>
+.\"
+.\" Process this file with
+.\" groff -mdoc -Tascii injail.8
+.\"
+.Dd May 28, 2002
+.Dt INJAIL 8
+.Os
+.Sh NAME
+.Nm injail
+.Nd determine if a process is running in a jail
+.Sh SYNOPSIS
+.Nm
+.Sh DESCRIPTION
+The
+.Nm
+utility returns a result which indicates the jailed status of
+the current process environment.
+.Sh DIAGNOSTICS
+The
+.Nm
+utility exits with one of the following values:
+.Bl -tag -width indent -compact
+.It 0
+the process is running in a jail.
+.It 1
+the process is not running in a jail.
+.It 2
+an error prevented determining if the process is running in a jail.
+.El
+.Sh BUGS
+.Nm
+uses kvm_getprocs(3) to determine process status. Anything which
+could cause a failure in either kvm_open(3) or kvm_getprocs(3) can
+cause this to fail as well. There aught to be a cleaner way.
+.Sh AUTHOR
+ James E. Quick <jq@quick.com>
+.Sh SEE ALSO
+.Xr jailer 8 ,
+.Xr jail 8 ,
+.Xr kvm 3
diff --git a/srcx/injail.c b/srcx/injail.c
new file mode 100644
index 0000000..dfc48f1
--- /dev/null
+++ b/srcx/injail.c
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2004, Nate Nielsen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the
+ * following disclaimer.
+ * * Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or
+ * other materials provided with the distribution.
+ * * The names of contributors to this software may not be
+ * used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ *
+ * CONTRIBUTORS
+ * Nate Nielsen <nielsen@memberwebs.com>
+ * James E. Quck <jq@quick.com>
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "util.h"
+
+#ifdef HAVE_CONFIG_H
+#include "../config.h"
+#endif
+
+static void usage();
+
+int main(int argc, char* argv[])
+{
+ int r;
+
+ /* Remove the program name */
+ argc--;
+ argv++;
+
+ if(argc != 0)
+ usage();
+
+ if((r = running_in_jail()) == -1)
+ errx(1, "couldn't determine jail status");
+
+ return r ? 0 : 1;
+}
+
+static void usage()
+{
+ fprintf(stderr, "usage: injail\n");
+ exit(2);
+}