securelevel revision 124616
1#!/bin/sh
2#
3# $NetBSD: securelevel,v 1.4 2002/03/22 04:34:00 thorpej Exp $
4# $FreeBSD: head/etc/rc.d/securelevel 124616 2004-01-17 10:16:38Z mtm $
5#
6
7# PROVIDE: securelevel
8# KEYWORD: FreeBSD
9
10. /etc/rc.subr
11
12name="securelevel"
13start_cmd="securelevel_start"
14stop_cmd=":"
15
16securelevel_start()
17{
18	# Last chance to set sysctl variables that failed the first time.
19	#
20	/etc/rc.d/sysctl lastload
21
22	case ${OSTYPE} in
23	FreeBSD)
24		case ${kern_securelevel_enable} in
25		[Yy][Ee][Ss])
26			if [ ${kern_securelevel} -ge 0 ]; then
27				echo 'Raising kernel security level: '
28				${SYSCTL_W} kern.securelevel=${kern_securelevel}
29			fi
30			;;
31		esac
32		;;
33	NetBSD)
34		#	if $securelevel is set higher, change it here, else if
35		#	it is 0, change it to 1 here, before we start daemons
36		#	or login services.
37		#
38		osecurelevel=`sysctl -n kern.securelevel`
39		if [ -n "$securelevel" -a "$securelevel" != "$osecurelevel" ]; then
40			if [ "$securelevel" -lt "$osecurelevel" ]; then
41				echo "Can't lower securelevel."
42				exit 1
43			else
44				echo -n "Setting securelevel: "
45				${SYSCTL_W} kern.securelevel=$securelevel
46			fi
47		else
48			if [ "$osecurelevel" = 0 ]; then
49				echo -n "Setting securelevel: "
50				${SYSCTL_W} kern.securelevel=1
51			fi
52		fi
53		;;
54	esac
55}
56
57load_rc_config $name
58run_rc_command "$1"
59