On Thu, Jan 15, 2009 at 10:15:04PM +0000, Pierre Habouzit wrote: > On Thu, Jan 15, 2009 at 11:16:52PM +0000, martin f krafft wrote: > > reopen 500806 > > retitle 500806 nsdc should drop privileges when invoked as root > > severity 500806 wishlist > > thanks > > > > also sprach Pierre Habouzit <[email protected]> [2009.01.16.0222 +1300]: > > > Nope, you're the one being wrong, you should not run nsdc as root, > > > unless you're starting nsd. > > > > > > You should do : su -c nsd nsdc rebuild > > [...] > > > > You knew you had it coming: > > > > Since I do not have to su for running postfix flush or reload, and > > I do not have to su to run rndc and I do not have to su to run > > apache2ctl, it only seems reasonable that nsdc should handle this > > itself: please make it drop privileges when invoked as root. > > Have you ever used inn2 ? Because it has substantially the very same > problem. > > My problem is, the user can change username from /etc/nsd3/nsd.conf to > change the user nsd is running under, and it's rather "hard" to parse > from nsdc (which is pure sh scripting). > > .... except that: > > $(nsd-checkconf -o username /etc/nsd3/nsd.conf) is what I want. > ... > ... okay I'll provide a patch then
Untested yet, but the following snipplet applied to /usr/bin/nsdc should do.
diff --git a/nsdc.sh.in b/nsdc.sh.in
index 136fe9e..5383575 100644
--- a/nsdc.sh.in
+++ b/nsdc.sh.in
@@ -92,8 +92,18 @@ pidfile=`${nsd_checkconf} -o pidfile ${configfile}`
difffile=`${nsd_checkconf} -o difffile ${configfile}`
zonesdir=`${nsd_checkconf} -o zonesdir ${configfile}`
lockfile="${dbfile}.lock" # still needed
+username=`${nsd_checkconf} -o username ${configfile}`
sbindir=`dirname ${nsd_checkconf}`
+case "$1" in
+ start|restart);;
+ *)
+ if [ "$UID" = 0 -a "$username" != "root" ]; then
+ exec su -c "$username" '"$0" -c "${configfile}" "$@"'
+ fi
+ ;;
+esac
+
# move to zonesdir (if specified), and make absolute pathnames.
if test -n "${zonesdir}"; then
zonesdir=`dirname ${zonesdir}/.`
more or less, the quoting becomes broken doing that... but that's the rough
idea.
--
·O· Pierre Habouzit
··O [email protected]
OOO http://www.madism.org
pgpHcwKbAlTnR.pgp
Description: PGP signature

