diff options
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); +}  | 
