Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Jul 2006 21:41:19 +0100
From:      Brian Candler <B.Candler@pobox.com>
To:        Keith Woodworth <kwoody@citytel.net>
Cc:        freebsd-isp@freebsd.org
Subject:   Re: DHCP error.
Message-ID:  <20060706204119.GA33559@uk.tiscali.com>
In-Reply-To: <20060706092851.D50369@pop.citytel.net>
References:  <20060705172226.I72183@pop.citytel.net> <20060706121716.GA32208@uk.tiscali.com> <20060706092851.D50369@pop.citytel.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jul 06, 2006 at 09:42:29AM -0700, Keith Woodworth wrote:
> It used to be that you could put:
> 
> /usr/sbin/dhcpd
> 
> or any other command line to start a daemon in rc.conf, and there used to
> be rc.local to start local daemons too years ago and I am still used to
> putting the whole path, including command line args directly in rc.conf.
> 
> Now /usr/libexec/save-entropy runs from cron every 11 mins running as
> operator, which has no root privs and it reads in rc.conf.
> 
> So I think what it does is when /usr/libexec/save-entropy runs it
> reads in rc.conf and sees:
> 
> /usr/sbin/dhcpd
> 
> then tries to run it as operator. Operator has no root privs, hence the
> error.

Ah. That would certainly explain it :-)

/etc/rc.local does still exists though (well, you need to create it
yourself, but if you do it is run at system startup time)

In the new world order, for isc-dhcpd installed from packages, all you do is

dhcpd_enable="YES"

in rc.conf. All the scripts in /usr/local/etc/rc.d/* are run at bootup time,
but they only start the daemon if they have a corresponding foo_enable="YES"
in rc.conf. (Or _should_ ... maybe not all scripts have been converted over
yet)

> /usr/libexec/save-entropy has something to do with generating randomness,
> I'm not exactly sure as Ive not read up on it yet and there is no manpage.

It's just a shell script - you can read it. It saves state from the entropy
gathering, so if the machine is rebooted it the random number generator
doesn't start up in a predictable state.

> I suppose I could just comment that line in cron but I'm not sure what
> else it might break, nor do I want to as it was put there for a reason I'm
> sure. :)

Other things run from cron, and you don't want those attempting to start
dhcpd as different users either. The solution is to move your
"/usr/sbin/dhcpd" command to /etc/rc.local

> So now I have to invoke the daemons properly with:
> 
> dhcpd_enable="yes"
> 
> in rc.conf.

Yes if you are using ports, which have startup scripts in
/usr/local/etc/rc.d/. However if you are using isc-dhcpd compiled from
source, then rc.local is probably the right place, unless you put a suitable
script in /usr/local/etc/rc.d/

But this still doesn't explain the "permission denied" error you see if you
start dhcpd as root (assuming you *are* trying to start it as root, that is)

Regards,

Brian.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060706204119.GA33559>