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