aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xetc/rc.d/sshd33
-rw-r--r--etc/rc.subr35
-rw-r--r--share/man/man8/rc.subr.834
3 files changed, 25 insertions, 77 deletions
diff --git a/etc/rc.d/sshd b/etc/rc.d/sshd
index 1f4078c50ebb..82a4670e7711 100755
--- a/etc/rc.d/sshd
+++ b/etc/rc.d/sshd
@@ -19,8 +19,6 @@ extra_commands="keygen reload"
timeout=300
-load_rc_config $name
-
user_reseed()
{
(
@@ -49,46 +47,47 @@ sshd_keygen()
umask 022
# Can't do anything if ssh is not installed
- [ -x ${prefix}/bin/ssh-keygen ] || {
- warn "${prefix}/bin/ssh-keygen does not exist."
+ [ -x /usr/bin/ssh-keygen ] || {
+ warn "/usr/bin/ssh-keygen does not exist."
return 1
}
- if [ -f ${etcdir}/ssh/ssh_host_key ]; then
+ if [ -f /etc/ssh/ssh_host_key ]; then
echo "You already have an RSA host key" \
- "in ${etcdir}/ssh/ssh_host_key"
+ "in /etc/ssh/ssh_host_key"
echo "Skipping protocol version 1 RSA Key Generation"
else
- ${prefix}/bin/ssh-keygen -t rsa1 -b 1024 \
- -f ${etcdir}/ssh/ssh_host_key -N ''
+ /usr/bin/ssh-keygen -t rsa1 -b 1024 \
+ -f /etc/ssh/ssh_host_key -N ''
fi
- if [ -f ${etcdir}/ssh/ssh_host_dsa_key ]; then
+ if [ -f /etc/ssh/ssh_host_dsa_key ]; then
echo "You already have a DSA host key" \
- "in ${etcdir}/ssh/ssh_host_dsa_key"
+ "in /etc/ssh/ssh_host_dsa_key"
echo "Skipping protocol version 2 DSA Key Generation"
else
- ${prefix}/bin/ssh-keygen -t dsa -f ${etcdir}/ssh/ssh_host_dsa_key -N ''
+ /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
fi
- if [ -f ${etcdir}/ssh/ssh_host_rsa_key ]; then
+ if [ -f /etc/ssh/ssh_host_rsa_key ]; then
echo "You already have a RSA host key" \
- "in ${etcdir}/ssh/ssh_host_rsa_key"
+ "in /etc/ssh/ssh_host_rsa_key"
echo "Skipping protocol version 2 RSA Key Generation"
else
- ${prefix}/bin/ssh-keygen -t rsa -f ${etcdir}/ssh/ssh_host_rsa_key -N ''
+ /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
fi
)
}
sshd_precmd()
{
- if [ ! -f ${etcdir}/ssh/ssh_host_key -o \
- ! -f ${etcdir}/ssh/ssh_host_dsa_key -o \
- ! -f ${etcdir}/ssh/ssh_host_rsa_key ]; then
+ if [ ! -f /etc/ssh/ssh_host_key -o \
+ ! -f /etc/ssh/ssh_host_dsa_key -o \
+ ! -f /etc/ssh/ssh_host_rsa_key ]; then
user_reseed
run_rc_command keygen
fi
}
+load_rc_config $name
run_rc_command "$1"
diff --git a/etc/rc.subr b/etc/rc.subr
index 3a2fd167216c..36144cdd9bee 100644
--- a/etc/rc.subr
+++ b/etc/rc.subr
@@ -506,6 +506,9 @@ run_rc_command()
;;
esac
+ eval _override_command=\$${name}_program
+ command=${command:+${_override_command:-$command}}
+
_keywords="start stop restart rcvar $extra_commands"
rc_pid=
_pidcmd=
@@ -873,8 +876,6 @@ run_rc_script()
#
load_rc_config()
{
- local _tmp
-
_name=$1
if [ -z "$_name" ]; then
err 3 'USAGE: load_rc_config name'
@@ -893,35 +894,9 @@ load_rc_config()
fi
_rc_conf_loaded=true
fi
-
- eval _override_command=\$${name}_program
- command=${command:+${_override_command:-$command}}
-
- if [ -z "${command}" ]; then
- _tmp=`/bin/realpath $0`
- prefix=${_tmp%/etc/rc.d/*}/
- else
- prefix=${command%/*bin/*}/
- fi
- if [ "${prefix}" = "/" -o "${prefix}" = "/usr/" ] ; then
- etcdir="/etc"
- else
- etcdir="${prefix}etc"
- fi
-
- # XXX - Deprecated
- if [ -f /etc/rc.conf.d/${_name} -a ${etcdir} != "/etc" ]; then
+ if [ -f /etc/rc.conf.d/"$_name" ]; then
debug "Sourcing /etc/rc.conf.d/${_name}"
- warn "Warning: /etc/rc.conf.d/${_name} is deprecated, please use ${etcdir}/rc.conf.d/${_name} instead."
- if [ -f ${etcdir}/rc.conf.d/${_name} ]; then
- warn "Warning: Both /etc/rc.conf.d/${_name} and ${etcdir}/rc.conf.d/${_name} exist."
- fi
- . /etc/rc.conf.d/${_name}
- fi
-
- if [ -f ${etcdir}/rc.conf.d/${_name} ]; then
- debug "Sourcing ${etcdir}/rc.conf.d/${_name}"
- . ${etcdir}/rc.conf.d/${_name}
+ . /etc/rc.conf.d/"$_name"
fi
# XXX - Deprecated variable name support
diff --git a/share/man/man8/rc.subr.8 b/share/man/man8/rc.subr.8
index f6441eaecbca..3bec150ae5bb 100644
--- a/share/man/man8/rc.subr.8
+++ b/share/man/man8/rc.subr.8
@@ -332,38 +332,12 @@ which is not always the case.
Source in the configuration files for
.Ar name .
First,
-.Pa /etc/defaults/rc.conf
-and
.Pa /etc/rc.conf
-are sourced if they have not yet been read in.
+is sourced if it has not yet been read in.
Then,
-.Va etcdir
-is set to
-.Pa /etc
-if
-.Va command Ap s
-prefix (or
-.Va ${name} Ns Va _program Ap s
-if it is defined) is
-.Pa /
-or
-.Pa /usr ,
-otherwise
-.Va etcdir
-is set to
-.Pa ${prefix} Ns Pa /etc .
-Once those variables are set accordingly,
-.Pa /etc/rc.conf.d/ Ns Va ${name}
-is sourced if the file exists (but it is deprecated if
-.Va etcdir
-is different than
-.Pa /etc )
-and then
-.Pa ${etcdir} Ns Pa /defaults/ Ns Va ${name}
-and
-.Va ${etcdir} Ns Pa /rc.conf.d/ Ns Va ${name}
-are sourced if these files exist.
-All these files may also contain other variable assignments to override
+.Pa /etc/rc.conf.d/ Ns Ar name
+is sourced if it is an existing file.
+The latter may also contain other variable assignments to override
.Ic run_rc_command
arguments defined by the calling script, to provide an easy
mechanism for an administrator to override the behaviour of a given