diff options
author | Stef Walter <stef@memberwebs.com> | 2004-05-20 00:08:28 +0000 |
---|---|---|
committer | Stef Walter <stef@memberwebs.com> | 2004-05-20 00:08:28 +0000 |
commit | c741daf0524869d8bf4ab5b78a8b8a25ba7ceb0a (patch) | |
tree | d2f699c57b855a65959ab57c7309fe2eefad5ed4 /srcx | |
parent | 61efcd183a9c458df98f02bfe442ea8959f2ed6b (diff) |
Added injail to jailutils
Diffstat (limited to 'srcx')
-rw-r--r-- | srcx/Makefile.am | 7 | ||||
-rw-r--r-- | srcx/injail.8 | 76 | ||||
-rw-r--r-- | srcx/injail.c | 72 |
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); +} |