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