1#!/bin/sh
2#
3# $NetBSD: securelevel,v 1.9 2023/12/25 07:39:59 kre Exp $
4#
5
6# PROVIDE: securelevel
7# REQUIRE: ipnat mountd
8# BEFORE:  DAEMON
9
10$_rc_subr_loaded . /etc/rc.subr
11
12name="securelevel"
13start_cmd="securelevel_start"
14stop_cmd=":"
15
16securelevel_start()
17{
18	#	if $securelevel is set higher, change it here, else if
19	#	it is 0, change it to 1 here, before we start daemons
20	#	or login services.
21	#
22	osecurelevel=$(sysctl -n kern.securelevel 2>&-)
23	if [ $? != 0 ]; then
24		echo "Can't set securelevel. (kern.securelevel sysctl not present.)"
25		exit 1
26	fi
27
28	if [ -n "$securelevel" ] && [ "$securelevel" != "$osecurelevel" ]; then
29		if [ "$securelevel" -lt "$osecurelevel" ]; then
30			echo "Can't lower securelevel."
31			exit 1
32		else
33			echo -n "Setting securelevel: "
34			sysctl -w kern.securelevel=$securelevel
35		fi
36	else
37		if [ "$osecurelevel" = 0 ]; then
38			echo -n "Setting securelevel: "
39			sysctl -w kern.securelevel=1
40		fi
41 	fi
42}
43
44load_rc_config $name
45run_rc_command "$1"
46