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