Index | Thread | Search

From:
Atanas Vladimirov <vlado@bsdbg.net>
Subject:
Re: sysutils/telegraf: run unbound/nsd control commands as the daemon users
To:
Ports <ports@openbsd.org>
Cc:
tuftedocelot@fastmail.fm, Stuart Henderson <stu@spacehopper.org>
Date:
Tue, 22 Sep 2026 20:51:01 +0300

Download raw body.

Thread
On 2026-09-08 09:18, Atanas Vladimirov wrote:
> On 2026-09-02 17:01, Atanas Vladimirov wrote:
>> On 2026-08-28 17:34, Atanas Vladimirov wrote:
>>> Hello,
>>> 
>>> The example doas.conf(5) rules in the README permit _telegraf to run
>>> unbound-control(8) as _unbound and nsd-control(8) as _nsd.  The
>>> plugins only replaced sudo with doas and invoked
>>> 
>>> 	doas /usr/sbin/unbound-control stats_noreset
>>> 	doas /usr/sbin/nsd-control stats_noreset
>>> 
>>> doas(1) defaults to root unless -u is given, so those rules never 
>>> match
>>> and the plugins fail with exit status 1.
>>> 
>>> Pass -u _unbound / -u _nsd so the commands match the README.
>>> 
>>> ok?
>> 
>> Ping?
> 
> Morning,
> 
> Adding Lucas Raab in CC in case he missed it :)
> 
> By the way the other way around is to update the README and drop the
> -u _unbound / -u _nsd from the doas examples.
> 
> Best wishes,
> Atanas

Ping?

(cc: Stuart because Lucas didn't answer so far)

>> 
>>> 
>>> Index: Makefile
>>> ===================================================================
>>> RCS file: /cvs/ports/sysutils/telegraf/Makefile,v
>>> diff -u -p -r1.47 Makefile
>>> --- Makefile	20 Jul 2026 22:44:35 -0000	1.47
>>> +++ Makefile	28 Aug 2026 14:31:39 -0000
>>> @@ -14,6 +14,8 @@ MAINTAINER =	Lucas Raab <tuftedocelot@fa
>>> 
>>>  CATEGORIES =		sysutils
>>> 
>>> +REVISION =	0
>>> +
>>>  # MIT
>>>  PERMIT_PACKAGE =	Yes
>>> 
>>> Index: patches/patch-plugins_inputs_nsd_nsd_go
>>> ===================================================================
>>> RCS file: 
>>> /cvs/ports/sysutils/telegraf/patches/patch-plugins_inputs_nsd_nsd_go,v
>>> diff -u -p -r1.3 patch-plugins_inputs_nsd_nsd_go
>>> --- patches/patch-plugins_inputs_nsd_nsd_go	6 Mar 2025 01:58:54 
>>> -0000	1.3
>>> +++ patches/patch-plugins_inputs_nsd_nsd_go	28 Aug 2026 14:31:40 
>>> -0000
>>> @@ -1,11 +1,13 @@
>>>  Index: plugins/inputs/nsd/nsd.go
>>>  --- plugins/inputs/nsd/nsd.go.orig
>>>  +++ plugins/inputs/nsd/nsd.go
>>> -@@ -120,7 +120,7 @@ func nsdRunner(cmdName string, timeout 
>>> config.Duration
>>> +@@ -119,8 +119,8 @@ func nsdRunner(cmdName string, timeout 
>>> config.Duration
>>> + 	cmd := exec.Command(cmdName, cmdArgs...)
>>> 
>>>   	if useSudo {
>>> - 		cmdArgs = append([]string{cmdName}, cmdArgs...)
>>> +-		cmdArgs = append([]string{cmdName}, cmdArgs...)
>>>  -		cmd = exec.Command("sudo", cmdArgs...)
>>> ++		cmdArgs = append([]string{"-u", "_nsd", cmdName}, cmdArgs...)
>>>  +		cmd = exec.Command("doas", cmdArgs...)
>>>   	}
>>> 
>>> Index: patches/patch-plugins_inputs_unbound_unbound_go
>>> ===================================================================
>>> RCS file: 
>>> /cvs/ports/sysutils/telegraf/patches/patch-plugins_inputs_unbound_unbound_go,v
>>> diff -u -p -r1.5 patch-plugins_inputs_unbound_unbound_go
>>> --- patches/patch-plugins_inputs_unbound_unbound_go	10 Jul 2025 
>>> 03:38:13 -0000	1.5
>>> +++ patches/patch-plugins_inputs_unbound_unbound_go	28 Aug 2026 
>>> 14:31:40 -0000
>>> @@ -1,11 +1,13 @@
>>>  Index: plugins/inputs/unbound/unbound.go
>>>  --- plugins/inputs/unbound/unbound.go.orig
>>>  +++ plugins/inputs/unbound/unbound.go
>>> -@@ -159,7 +159,7 @@ func unboundRunner(unbound Unbound) 
>>> (*bytes.Buffer, er
>>> +@@ -158,8 +158,8 @@ func unboundRunner(unbound Unbound) 
>>> (*bytes.Buffer, er
>>> + 	cmd := exec.Command(unbound.Binary, cmdArgs...)
>>> 
>>>   	if unbound.UseSudo {
>>> - 		cmdArgs = append([]string{unbound.Binary}, cmdArgs...)
>>> +-		cmdArgs = append([]string{unbound.Binary}, cmdArgs...)
>>>  -		cmd = exec.Command("sudo", cmdArgs...)
>>> ++		cmdArgs = append([]string{"-u", "_unbound", unbound.Binary}, 
>>> cmdArgs...)
>>>  +		cmd = exec.Command("doas", cmdArgs...)
>>>   	}
>>> 
>>> Index: pkg/README
>>> ===================================================================
>>> RCS file: /cvs/ports/sysutils/telegraf/pkg/README,v
>>> diff -u -p -r1.2 README
>>> --- pkg/README	20 Jul 2026 22:44:35 -0000	1.2
>>> +++ pkg/README	28 Aug 2026 14:31:40 -0000
>>> @@ -13,9 +13,12 @@ install and configure sudo:
>>>  * OpenSMTPD
>>>  * Unbound
>>> 
>>> -Below are some example doas.conf(5) lines which could be used. If 
>>> you
>>> -have a nonstandard configuration of those daemons, adjustments to 
>>> the
>>> -location of binaries and arguments may be needed.
>>> +Below are some example doas.conf(5) lines which could be used.
>>> +Set use_sudo = true in the plugin configuration so telegraf invokes
>>> +doas(1). If you have a nonstandard configuration of those daemons,
>>> +adjustments to the location of binaries and arguments may be needed.
>>> +The Unbound and NSD plugins run the control commands as _unbound
>>> +and _nsd.
>>> 
>>>  permit nopass _telegraf as _unbound cmd /usr/sbin/unbound-control \
>>>  	args stats_noreset