1#!/bin/sh 2# 3# $FreeBSD: src/etc/rc.d/jail,v 1.4 2003/05/05 15:38:41 mtm Exp $ 4# $DragonFly: src/etc/rc.d/jail,v 1.1 2003/07/24 06:35:37 dillon Exp $ 5# 6 7# PROVIDE: jail 8# REQUIRE: LOGIN 9# BEFORE: securelevel 10# KEYWORD: DragonFly FreeBSD 11 12. /etc/rc.subr 13 14name="jail" 15rcvar=`set_rcvar` 16start_cmd="jail_start" 17stop_cmd="jail_stop" 18 19jail_start() 20{ 21 echo -n 'Configuring jails:' 22 echo -n ' set_hostname_allowed=' 23 if checkyesno jail_set_hostname_allow ; then 24 echo -n 'YES' 25 ${SYSCTL_W} 1>/dev/null security.jail.set_hostname_allowed=1 26 else 27 echo -n 'NO' 28 ${SYSCTL_W} 1>/dev/null security.jail.set_hostname_allowed=0 29 fi 30 31 echo -n ' unixiproute_only=' 32 if checkyesno jail_socket_unixiproute_only ; then 33 echo -n 'YES' 34 ${SYSCTL_W} 1>/dev/null security.jail.socket_unixiproute_only=1 35 else 36 echo -n 'NO' 37 ${SYSCTL_W} 1>/dev/null security.jail.socket_unixiproute_only=0 38 fi 39 40 echo -n ' sysvipc_allow=' 41 if checkyesno jail_sysvipc_allow ; then 42 echo -n 'YES' 43 ${SYSCTL_W} 1>/dev/null security.jail.sysvipc_allowed=1 44 else 45 echo -n 'NO' 46 ${SYSCTL_W} 1>/dev/null security.jail.sysvipc_allowed=0 47 fi 48 echo '.' 49 50 echo 'Starting Jails.' 51 for _jail in ${jail_list} 52 do 53 eval jail_rootdir=\"\$jail_${_jail}_rootdir\" 54 eval jail_hostname=\"\$jail_${_jail}_hostname\" 55 eval jail_ip=\"\$jail_${_jail}_ip\" 56 eval jail_exec=\"\$jail_${_jail}_exec\" 57 [ -z ${jail_exec} ] && jail_exec="/bin/sh /etc/rc" 58 59 jail ${jail_rootdir} ${jail_hostname} ${jail_ip} ${jail_exec} 60 done 61} 62 63jail_stop() 64{ 65 kill -TERM $(ps aux | awk '$8 ~ /.*J/ {print $2};') 66} 67 68 69load_rc_config $name 70run_rc_command "$1" 71